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