Tak malé popostrčení: Představ si hada dlouhého 15 "článků" (= znaků)
Jak uložit hrací pole a hada do paměti počítače
Použij dvourozměrné pole int, první index jako index řádku, druhý jako index sloupce. Prvky pole (= políčka hracího pole), kde had nemá žádnou část těla naplň číslem 0, části těla očísluj od hlavičky (číslo 1) po ocásek (číslo 15 pokud je had dlouhý 15 znaků).
Pohyb hada, jak poznat že se had kousnul
Projdeš pole po jednotlivých prvcích (dva vnořené cykly). Podle hodnoty prvku pole provedeš akci:
- prvek má hodnotu 0, je to okolí hada, hodnota prvku pole se nemění
- prvek má hodnotu 15, je to ocásek, hodnotu prvku změníš na 0 (ocásek opustil políčko a je tam volno)
- prvek má hodnotu 1, je to stávající poloha hlavičky, zapamatuješ si indexy prvku pole jako původní polohu hlavičky a hodnotu prvku zvýšíš o 1 (had se pohnul, kde měl hlavičku má tělo)
- prvek má jinou nenulovou hodnotu, je to tělíčko hada, hodnotu prvku zvýšíš o 1
Potom stanovíš novou polohu hlavičku, použiješ při tom původní polohu hlavičky. Budeš pamatovat na to, že hrací pole má souřadnice 0,0 v levém horním rohu. Pohyb hada nahoru tedy znamená snižovat index řádku:
- pohyb hada vlevo = index sloupce snížíš o jedničku
- pohyb hada vpravo = index sloupce zvýšíš o jedničku
- pohyb hada nahoru = index řádku snížíš o jedničku
- pohyb hada dolů = index řádku zvýšíš o jedničku
hlavičku však zatím nezapíšeš do pole a otestuješ, jestli se had kousl takto:
- prvek pole kde má být nová hlavička, obsahuje 0. Vše je OK, můžeš volit zelenou barvu pro hlavičku a hráči počítat body
- prvek pole obsahuje nenulovou hodnotu, had se kousnul a hra skončila, můžeš zvolit červenou barvu pro hlavičku a hráče informovat o dosaženém počtu bodů. Teprve nyní vykreslíš hlavičku.
Ovládací klávesy bych asi zvolil čísla, na klávesnici Num Lock čísla 2, 4, 6, 8 mají na sobě šipky.
hu