Soutěžní úloha vyšší programovací jazyky
Kategorie žáci a mládež
- Vytvořte počítačovou hru HLAD.
- Načtěte z textového souboru podobu hrací plochy: Hrací plocha bude zadána v
textovém souboru jako matice znaků, ve tvaru obdélníka o rozměrech 60 x 20. Soubor je
korektní. Znázornění jednotlivých objektu včetně hraniční zdi bude
následující:
Mezera |
Cesta bez potravy |
(#32) |
Tečka |
Cesta s potravou |
(#46) |
Hvězdička |
Hráč |
(#42) |
Zavináč |
Příšera |
(#64) |
Mříž |
Zeď' |
(#35) |
- Naprogramujte ovládání hráče a jeho pohyb po hracím poli včetně požírání
potravy. Základní ovládání pomocí kurzorových šipek. Po každém stisku klávesy
hráč popojde o jedno políčko v daném směru (autorepeat lze akceptovat). Po stisku
klávesy při stisknutém přeřaďovači SHIFT popojde hráč o dvě políčka v daném
směru. Pokud hráč přejde přes políčko, na němž je potrava, sežere ji.
- Naprogramujte náhodný pohyb "příšery", která v případě, že hráče
potká, tak jej sežere. U základní verze je akceptována pouze 1. příšera.
- Naprogramujte počítání skóre a životů. Za každou snědenou potravu obdrží
hráč 1 bod. Při sežrání příšerou hráč ztrácí 1 život a 20 bodů. Hráč má
na počátku 3 životy. Po sežrání příšerou se hráč znovu objeví ve výchozí
pozici, kde hru začínal. Hra končí tím, že hráč sežere všechnu potravu nebo
ztratí všechny životy.
- Naprogramujte náhodný pohyb všech příšer zadaných ve vstupním souboru.
- Naprogramujte pachovou stopou hráče, kterou za sebou hráč zanechává. Pachovou
stopu barevně znázorněte na hrací ploše. Pachová stopa zůstává na 10 naposledy
navštívených polích.
- Upravte náhodný pohyb příšer tak, aby v případě, že zachytí pachovou stopu
hráče, tak jej po této stopě dokázali sledovat. Narazí-li příšera na pachovou
stopu, musí umět poznat, kterým směrem hráč šel.
- Umožněte změnit způsob generování pachové stopy: Nový způsob generování
pachové stopy se mění stiskem klávesy T, starý způsob se nastaví po stisku klávesy
P. Nový způsob generuje pachovou stopu tak, aby na daném poli vydržela právě 3
vteřiny poté, co toto pole hráč opustí.
- Označení úlohy:
- vyšší programovací jazyky žáci - Zxx.přípona,
- vyšší programovací jazyky mládež - Mxx.přípona,
- kde xx=startovní číslo