Глава 19 · Модель игры
Голова, тело и модель Snake
Список координат вместо списка Turtle-объектов — snake[0] это голова, остальное — тело.
Змейка как список позиций, а не список черепашек
Первый прототип хранит тело как список объектов Turtle — состояние игры и графика неразрывно связаны, ту же проблему глава 18 уже разбирала для Canvas (раздел 18.8). Финальная модель хранит змейку как обычный список координат:
model_snake.py
snake = [
(0, 0), # snake[0] — голова
(-20, 0),
(-40, 0),
]
Отрисовка превращает позиции в Turtle-сегменты — не наоборот
Модель ничего не знает о том, как выглядит змейка на экране.
render() (раздел 19.29) читает snake и раскладывает координаты по уже существующим Turtle-сегментам — то же разделение «модель ≠ виджеты», что и render_document() в PaintApp главы 18.Практика: список позиций как модель Snake
Автоматическая проверка — функции head_of() и body_of(): snake[0] это голова, snake[1:] — тело