20.03.2017 Views

Raspberry Pi - Uživatelská příručka

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ČÁST III Programování a hackování<br />

Tyto instrukce mění hodnotu proměnné zmenaSmeru, která řídí směr hráčova hada. Pomocí<br />

klíčového slova or s příkazem if lze vyhodnocovat více podmínek. V tomto případě lze řídit<br />

hada dvěma způsoby: hráč může ovládat hada směrem nahoru, doprava, dolů či doleva pomocí<br />

kurzorových kláves nebo kláves W, A, S a D. Dokud hráč nestiskne klávesu, had postupuje<br />

doprava podle hodnoty, kterou má proměnná zmenaSmeru nastavenu při spuštění programu.<br />

Když se vrátíte k proměnným, které jste inicializovali na začátku programu, můžete si všimnout<br />

další proměnné s názvem smer. Tato proměnná v kombinaci s proměnnou zmenaSmeru<br />

kontroluje, zda uživatel při ovládání hada zvolil platný směr. Program by neměl povolit, aby<br />

se had mohl obrátit „čelem vzad“ – když had kousne sám sebe, hyne a hra končí. Aby k tomu<br />

nedocházelo, je směr požadovaný hráčem (který je uložen v proměnné zmenaSmeru) porovnáván<br />

s aktuálním směrem pohybu hada – ten uchovává proměnná smer. Jestliže jsou oba<br />

směry protilehlé, je instrukce ignorována a had pokračuje stejným směrem jako dosud. Kvůli<br />

porovnání zadejte tyto řádky:<br />

if zmenaSmeru == ‚doprava‘ and not ↩<br />

smer == ‚doleva‘:<br />

smer = zmenaSmeru<br />

if zmenaSmeru == ‚doleva‘ and not ↩<br />

smer == ‚doprava‘:<br />

smer = zmenaSmeru<br />

if zmenaSmeru == ‚nahoru‘ and not ↩<br />

smer == ‚dolu‘:<br />

smer = zmenaSmeru<br />

if zmenaSmeru == ‚dolu‘ and not ↩<br />

smer == ‚nahoru‘:<br />

smer = zmenaSmeru<br />

Když program zkontroluje, zda uživatelský vstup dává smysl, může překreslit hada, který je<br />

na obrazovce znázorněn jako řada bloků. V každém kroku se had posune o vzdálenost, která<br />

se rovná velikosti jedné z jeho čtvercových částí. Vzhledem k tomu, že každý segment měří<br />

20 pixelů, můžete knihovnu pygame požádat, aby hada posunula o jeden segment v příslušném<br />

směru. Zadejte následující kód:<br />

if smer == ‚doprava‘:<br />

polohaHada[0] += 20<br />

if smer == ‚doleva‘:<br />

polohaHada[0] -= 20<br />

if smer == ‚nahoru‘:<br />

polohaHada[1] -= 20<br />

if smer == ‚dolu‘:<br />

polohaHada[1] += 20<br />

Operátory += a -= umožňují změnit hodnotu proměnné o určitý krok: operátor += zvýší předchozí<br />

hodnotu proměnné o daný krok, zatímco operátor -= nastaví hodnotu proměnné jako<br />

rozdíl předchozí hodnoty a kroku. Kratší zápis polohaHada[0] += 20 znamená totéž jako<br />

polohaHada[0] = polohaHada[0] + 20. Číslo v hranatých závorkách za proměnnou poloha<br />

162

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!