Войдите, чтобы продолжить.
Игра «Сокобан» · Шаг 3 из 6
Решён или тупик
После каждого хода игра смотрит на поле. Все ящики на местах — уровень решён. А ящик, загнанный в угол между двумя стенами, оттуда уже не вытолкать: если это не его место, уровень проигран, и лучше сказать об этом сразу, чем через двадцать бесполезных ходов.
Что сделать
Посмотрите на поле после хода — уровень решён, ящик застрял в углу или игра продолжается.
Что приходит
yashchiki— клетки ящиковceli— места для ящиковsteny— клетки стен
Что вернуть
"решён", если все ящики на местах; иначе "тупик", если ящик не на месте стоит в углу — стена сверху или снизу и сбоку; иначе None.
Допишите функцию ocenka в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра спрашивает ocenka после каждого хода. «Решён» — переход на следующий уровень, «тупик» — ящик краснеет, и игра предлагает отменить ход. Решите шаг — и застрявший ящик будет виден сразу.
Без этого шага: застрявший в углу ящик никто не замечает.
ocenka([(1, 3)], [(1, 3)], [(0, 3), (1, 4)])
'решён'
Функция принимает ящики, места для ящиков и стены — списки клеток. Возвращает:
- «решён», если каждый ящик стоит на месте;
- иначе «тупик», если хоть один ящик НЕ на месте стоит в углу: стена у него сверху или снизу и одновременно слева или справа;
- иначе
None.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.