Rozdział 19 · Model gry
Głowa, ciało i model Snake
Lista współrzędnych zamiast listy obiektów ZHHK1ZKHK — snake[0] to głowa, reszta to ciało.
Wąż jako lista pozycji, a nie lista żółwi
Pierwszy prototyp przechowuje nadwozie jako lista obiekty Turtle jest stan gry, oraz Grafika jest ze sobą nierozerwalnie powiązana, rozdział 18 już rozwiązał ten sam problem w Canvas (Rozdział 18.8). Ostateczny model przechowuje węża jako regularną współrzędną lista:
model_snake.py
snake = [
(0, 0), # snake[0] – Głowa
(-20, 0),
(-40, 0),
]
Renderowanie zamienia pozycje na Turtle- segmenty, a nie odwrotnie
Model nic nie wie o tym, jak wygląda wąż na ekranie.
render() (Rozdział 19.29) brzmi snake i rozkłada współrzędne na już istniejące Turtle- segmenty — to samo rozdzielenie „model ≠ widżety”, co i render_document() w PaintApp rozdziału 18.Praktyka: lista pozycje jako modelowy Snake
Automatyczna kontrola – działa head_of(), a body_of(): snake[0] jest głową, snake[1:] jest ciałem