Рекурсия в MP
Привет boolean.name! Решил посмсотреть MP и для теста начал писать сапёра, проблема вот в чём. Когда открываешь клетку, а там пусто, то, как и в MS Сапёре, открываются все смежные клетки, для этого использовал рекурсивную функцию:
Код:
procedure OpenEmpty(x, y: Integer); Код:
=====Thread[Thread-4,1,main]===== |
Ответ: Рекурсия в MP
Вообще поддерживает, но не уверен, что алгоритм работает корректно, когда функция вызывается внутри себя несколько раз подряд.
|
Ответ: Рекурсия в MP
Проблем быть не должно. У меня в последней игре процедура нанесения урона, натыкаясь на бочку, вызывает себя же еще 9 раз. К зависанию не приводит.
|
Ответ: Рекурсия в MP
Нашёл в чём проблема была. MP проверяет сразу все условия в if'ах, что впринципе не нужно, если уже есть хотя бы одно true
Код:
if(false)or(false)or(true)or({это выражение уже можно и не вычислять}false)or(false)then ... |
Часовой пояс GMT +4, время: 10:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot