Игра «Змейка» · Шаг 1 из 5
Ползти
Змейка — это клетки поля от головы к хвосту. За один такт она ползёт: голова переходит в соседнюю клетку, остальное тело — следом. А если голова пришла на еду — хвост остаётся на месте, и змейка становится длиннее на одну клетку.
Что сделать
Сдвиньте змейку на одну клетку — а если голова пришла на еду, пусть подрастёт.
Что приходит
zmeya— клетки змейки от головы к хвосту, список илиdeque; менять её нельзяnapravlenie— куда ползёт, пара:(0, 1)— вправо,(-1, 0)— вверхeda— клетка с едой
Что вернуть
Пару (новая змейка типа deque, съела ли): голова — шаг вперёд, хвост убран; на еде хвост остаётся и ответ True.
Допишите функцию polzti в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт polzti на каждом такте — раз в 150 миллисекунд. Решите шаг — и змейка поползёт по полю и начнёт расти от еды.
Без этого шага: змейка стоит на месте.
Змейка [(7, 4), (7, 3), (7, 2)] ползёт вправо: новая голова (7, 5), хвост (7, 2) убран — (deque([(7, 5), (7, 4), (7, 3)]), False). Будь еда в (7, 5), хвост остался бы, и змейка стала бы из четырёх клеток.
polzti([(7, 4), (7, 3), (7, 2)], (0, 1), (0, 0))
(deque([(7, 5), (7, 4), (7, 3)]), False)
Функция принимает змейку — последовательность клеток от головы к хвосту (список или deque; клетка — кортеж (строка, столбец)), — направление — кортеж (на сколько строк, на сколько столбцов), например (0, 1) — вправо, (-1, 0) — вверх, — и клетку с едой.
Возвращает пару: новую змейку типа deque и True, если голова пришла на еду (тогда хвост не укорачивается), иначе False.
Змейку, которую передали, менять нельзя: оболочке нужно её прежнее положение, если змейка врежется.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.