Переписка цикла
Доброго времени суток.Прошу простить за столь банальный пост.
Мне нужно переписать цикл do...while на цикл типа for.:write: do...while
var x, y;
do
{
x = MR() * gameWidth|0;
y = MR() * gameHight|0;
}
while (map[x][y]);
map[x][y] = 1;
Тут все предельно просто MR() - Math.random gameWidth - ширина. gameHeight - высота. Вот код связанный с map:
for (j = 0; j < gameWidth; j++)
{
map[j] = [];
}
Прошу помочь,кто чем сможет... |
looogle,
пару слов что скрипт должен делать? |
Скрипт выводим на полотно "еду",это как-бы рандомное местоположение
|
Чем do...while не угодил?
|
looogle,
и сколько 'еды' выхотите добавить на поле ? |
looogle,
пример генерации "еды" на поле для змейки http://javascript.ru/forum/misc/1135...html#post67971 |
Цитата:
превращаем двухмерный массив в одномерный выкидываем заполненные ячейки - рандомно достаём любую из оставшихся. |
looogle,
var map=[],n = 0, i, j, gameHight = 5, gameWidth = 8, c = [], x;
//----------------------------------------------------------------------------
for (i = 0; i< gameHight; i++){
map.push([]);
for(j=0; j < gameWidth; j++){
x=Math.round(Math.random()*1);
map[i].push(x);
}
}
//----------------------------------------------------------------------------
for (i = 0; i< gameHight; i++){
for(j=0; j < gameWidth; j++){
!map[i][j] && c.push([i,j]);
}
}
x = c.length;
x = Math.floor( Math.random()* x);
x = c[x];
c.length && (map[x[0]][x[1]] = 'X');
alert('карта\n'+map.join('\n')+'\nвыбрано поле ' + (!!c.length && x));
|
| Часовой пояс GMT +3, время: 16:38. |