Переписка цикла
Доброго времени суток.Прошу простить за столь банальный пост.
Мне нужно переписать цикл 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, время: 00:32. |