Pohyb hlavy hada v MakeCode
Had (snake) je nejznámější hra z tlačítkových telefonů, která před téměř 30 lety započala éru mobilního hraní.
V původní hře ovládáte hada čtyřmi směrovými šipkami, ale protože na micro:bitu jsou tlačítka pouze dvě, budeme s hadem zatáčet do stran. Naším úkolem je sníst co nejvíc potravy bez toho, abychom narazili do svého ocasu nebo do zdi.
Začneme hlavou – vytvoříme novou proměnnou „Hlava“ a v sekci při startu ji nastavíme na nový sprite na pozici vlevo nahoře (pozice x: 0 a y: 0). V sekci opakuj stále hlavu vždy posuneme o jedno políčko příkazem posuň Hlava o 1.
Abychom mohli hlavu ovládat, přidáme příkazy při stisknutí tlačítka A (a tlačítka B) a do nich zacvakneme příkaz otoč Hlava směrem vpravo (a vlevo) o 90°. Nezapomeneme na příkazy čekej, ať se hlava nehýbe moc rychle a hra není moc obtížná.
Jak vytvořit jídlo a sbírat skóre
Jídlo je další proměnná, kterou opět vytvoříme, ale tentokrát nastavíme náhodnou pozici (náhodné číslo od 0 do 4 pro pozici x a y). V sekci opakuj stále poté přidáme podmínku když, a chceme vědět, zda se hlava dotýká jídla.
Pokud se tak stane, zvýšíme skóre příkazem změň skóre o 1, a pro jídlo nastavíme novou náhodou pozici příkazem pro Jídlo nastav x (a y) na náhodné číslo od 0 do 4. Abychom rozeznali hlavu od jídla, bude jídlo blikat – příkazem pro Jídlo nastav blikání na 100.
Práce se seznamy:
Jak naprogramovat ocas hada
Protože ocas může být jakkoliv dlouhý, nebudeme vytvářet proměnnou pro každý jednotlivý článek, ale vytvoříme seznam. Nejprve vytvoříme proměnnou Ocas a tu nastavíme na nový seznam příkazem prázdný seznam ze sekce Seznamy.
V sekci opakuj stále před posunutím hlavy přidáme nový sprite na začátek seznamu, který bude mít stejnou pozici jako hlava (vlož na začátek Ocas prvek). Tím zároveň ocas o jeden článek povyroste – což chceme, pokud hlava sní jídlo. Pokud ale jídlo nesní, ocas opět zkrátíme příkazem odstraň poslední prvek z Ocas.
Detekce kolize a ukončení hry
Poslední věc, která hře chybí, je narážení do vlastního ocasu a do zdí. Ze sekce Smyčky přidáme příkaz pro prvek Hodnota ze seznamu, a pro každý prvek ze seznamu Ocas zjistíme, zda se dotýká hlavy. Pokud se tak stane, ukončíme hru příkazem konec hry.
A tím končí nejenom dnešní hra, ale zároveň i tento seriál. Věřím, že jste se něco nového naučili, a přeji hodně štěstí s programováním.