!?TM4; !!FU22344:P?y-1/?y-2/?y-3;Вызываем функцию генерации координат случайной свободной клетки. !!UN:Iy-1/y-2/y-3/54/y-1;Ставим случайного монстра на клетку. !!MOy-1/y-2/y-3:Gy-1;Устанавливаем случайное количество монстров.
;Функции генерации случайной свободной клетки карты.
!?FU22344;Функция генерации случайной свободной клетки карты. !!UN:X?y1/?y2;Считываем размеры карты. !!VRy2:+1;Вычисляем количество уровней на карте. !!VRy3:Sy1*y1*y2;Вычисляем количество клеток карты. !!VRy3:-1;Вычисляем номер последней клетки карты. !!VRy4:Sv2;Сохраняем значение глобальной переменной. !!VRv2:S0;Обнуляем переменную счёта свободных клеток. !!DO22345/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по всем клеткам карты и считающий число свободных клеток на ней. !!FU&v2<=0:E;Если свободных клеток нет, завершаем функцию. !!VRy5:Sv2-1;Вычисляем условный номер последней свободной клетки. !!VRv2:S0 Ry5;Генерируем случайный условный номер свободной клетки. !!DO22346/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по клеткам карты и вычисляющий реальный номер клетки. !!VRx1:Sv2%y1;Вычисляем и возвращаем x-координату клетки. !!VRx2:Sv2:y1%y1;Вычисляем и возвращаем y-координату клетки. !!VRx3:Sv2:y1:y1%y2;Вычисляем и возвращаем z-координату клетки. !!VRv2:Sy4;Восстанавливаем значение глобальной переменной.
!?FU22345;Функция проверки свободности клетки. !!VRy1:Sx16%x1;Вычисляем x-координату клетки. !!VRy2:Sx16:x1%x1;Вычисляем y-координату клетки. !!VRy3:Sx16:x1:x1%x2;Вычисляем z-координату клетки. !!TRy1/y2/y3:E?y4;Считываем проходимость клетки. !!TRy1/y2/y3:P?y5;Считываем посещаемость клетки. !!TRy1/y2/y3:T?y6/d/d/d/d/d/d/d;Считываем тип территории клетки. !!FU&y4=0|y5=0/y6=8/y6=9:E;Если клетка недоступна, завершаем тфункцию. !!OBy1/y2/y3:T?y7;Считываем тип объекта на клетке. !!VRv2&y7<>34:+1;Если на клетке стоит не герой, добавляем 1 в переменную свободных клеток.
!?FU22346;Функция проверки свободности клетки. !!VRy1:Sx16%x1;Вычисляем x-координату клетки. !!VRy2:Sx16:x1%x1;Вычисляем y-координату клетки. !!VRy3:Sx16:x1:x1%x2;Вычисляем z-координату клетки. !!TRy1/y2/y3:E?y4;Считываем проходимость клетки. !!TRy1/y2/y3:P?y5;Считываем посещаемость клетки. !!TRy1/y2/y3:T?y6/d/d/d/d/d/d/d;Считываем тип территории клетки. !!OBy1/y2/y3&y4=1/y5=1/y6<>8/y6<>9:T?y7;Если клетка свободна, считываем тип объекта на клетке. !!VRv2&y4=0|y5=0/y6=8/y6=9/y7=34:+1;Если клетка несвободна или на ней есть герой, добавляем 1 в переменную реального номера клетки. !!VRx16&x16=v2:Sx1*x1*x2;Если реальный номер клетки вычислен, завершаем цикл.
Cуть, На карте появляется случайный монстр ... не только копейщик
Все свежие обновления я выкладываю на своем сайте здесь.
(This post was last modified: 19.09.2011 13:39 by M.A.K.C..)