Projekt Had

Upravte program podľa vlastných predstáv.

Väčšina z vás sa rada hrá na počítačoch. Programovanie vám umožňuje navrhnúť svoju vlastnú hru. V tomto prípade možnete upraviť hru Had podľa vlastných predstáv, inšpirovať sa ňou a vytvoriť vlastnú hru.

  • zmeniť spôsob ovládania
  • doplniť počet životov
  • doplniť úrovne hry
  • do tabuľky najlepších výkonov doplniť mená hráčov
  • doplniť animácie pri narazení do steny, do seba, pri zjedení jedu
  • generovať kúzelný predmet, po ktorého zožratí sa zväčší počet životov
  • skombinovať obe verzie a umožniť používateľovi, aby si zvolil, či chce hru ovládať myšou alebo klávesnicou
  • prerobiť program na dvoch hadov, jeden ovládaný myšou, druhý klávesnicou a vytvoriť tak hru pre dvoch hráčov

Fantázii sa medze nekladú. Upravte autorstvo tak, aby tam figurovalo aj vaše meno. V komentároch pod článkom môžete napísať ďalšie vlastné nápady, ako upraviť hru.

Ovládanie

  • Nová hra – spustí hru. Vygeneruje sa hracie pole s náhodne rozmiestnenými zelenými a červenými kruhmi. Na náhodnej pozícii sa vygenuje ružový had. Približne po troch sekundách sa had pohne smerom ku kurzoru myši. Zelené kruhy sú hadovou potravou, červené kruhy sú jedovaté. Had nesmie naraziť do steny ani do seba.
  • Návod – popis ovládania hry
  • Vynulovať rekordy – vynuluje najlepšie výsledky

Procedúry

  • Generuj – vygeneruje na náhodnej pozícii kruh s priemerom 15. Ak na danom mieste už nejaký kruh je, kruh sa vygeneruje na inom mieste.
    viem generuj
    urob „x 290-nahodne 580 urob „y 190-nahodne 380
    urob „x :X-zvysok :X 15  #kruh bude v strede štvorca štvorcovej siete, v ktorej štvorce majú stranu veľké 15 bodov.
    urob „y :y-zvysok :y 15
    nechpoz veta :X :Y 
    ak2 farbabodu=“biela [kruh 15] #ak bod na vygenerovaných súradniciach je biely, nakreslí sa kruh
    [generuj] #ak nebol biely, generujú sa nové súradnice
    koniec
    Môžete experimentovať s veľkosťou kruhov
  • Hra – spustenie novej hry
    viem hra
    init zobrazskore cakaj 3000
    urob „co prenasleduj
    ak :co=1 [text „Zožral_som_jed]
    ak :co=2 [text „Zožral_som_seba]
    ak :co=3 [text „Narazil_som_o_stenu]
    skore
    koniec
    Podľa toho, ako had prišiel o život by sa mohla spustiť tomu zodpovedajúca animácia a zvuk.
  • Init – inicializácia premenných, nakreslenie hracej plochy, vygenerovanie potravy a jedu
    viem init
    znova
    nechfp „fialova
    nechhp 10
    ph
    nechpoz [-310 -210]
    pd
    dopredu 420 vpravo 90 dopredu 620 vpravo 90 dopredu 420 vpravo 90 dopredu 620 #nakreslenie stien
    ph
    nechfp „zelena opakuj 100 [generuj]  #generovanie potravy
    nechfp „cervena opakuj 150 [generuj] #generovanie jedu
    nechfp „biela
    kym [farbabodu<>“biela] [generuj]
    urob „had poz
    nechfp „ruzova
    kruh 15
    urob „skore 1
    urob „pauza 300
    koniec
    Pauza určuje, ako rýchlo sa had pohybuje. Ak by ste implementovali úrovne hry, jeden z parametrov, ktorý by ste menili by bola počiatočná hodnota premennej pauza. S úrovňou by mohli byť spojené i počty potravín a jedov.
  • Prenasleduj – ovládanie hada, testovanie, či neprišiel o život
    viem prenasleduj
    nechfp „ruzova
    zobrazskore
    opakuj 100000 [nechpoz [30 240] nechfp „biela kruh 50 nechpoz [-10 240] nechfp „ruzova text veta „Skóre: :skore
    urob „poz1 veta prvok 1 :had prvok 2 :had #Návrat na pozíciu prvého článku hada
    nechpoz :poz1
    kam
    dopredu 7.5 cakaj :pauza #pohnutie nastaveným smerom
    urob „had veta poz :had #pridanie nového články na začiatok hada
    urob „n pocet :had
    urob „n :n-1
    urob „x prvok :n :had
    urob „y posledny :had
    ak farbabodu=“červena [vysledok 1] #testy, či neprišiel o život
    ak farbabodu=“ruzova [vysledok 2]
    ak farbabodu=“fialova [vysledok 3]
    ak farbabodu=“zelena [vypln urob „skore :skore+1 nechfp „zelena generuj nechfp „ruzova urob „poz1 veta prvok 1 :had prvok 2 :had
    nechpoz :poz1 urob „pauza :pauza-1] #ak zožral potravu, zväčší sa skóre, zrýchli sa pohy
    ak farbabodu=“biela [
    nechpoz veta :X :Y
    nechfv „biela
    vypln
    urob „had bezposledneho :had  #ak vošiel na prázdne políčko, zmaže sa posledný článok hada
    urob „had bezposledneho :had
    nechfp „ruzova
    urob „poz veta prvok 1 :had prvok 2 :had
    nechpoz :poz]
    kruh 7 #Vykreslenie hlavy hada
    urob „pauza :pauza-0.01 #Každým krokom sa zrýchľuje pohyb hada
  • Kam – ovládanie hada. Keď zmeníte túto procedúru, zmeníte spôsob ovládania hada. V druhej verzii je modifikovaná  táto procedúra na ovládanie klávesnicou.
    viem kam
    urob „kam smerk pozmysi #zmeranie uhla smerom k pozícii myši. Smer pohybu hada sa nastaví na 0, 90, 180 a 270 stupňov, zodpovedá to smerom hore, vpravo, dole a vľavo
    ak :kam <45 [urob „kam 0]
    ak and :kam>44 :kam<135 [urob „kam 90]
    ak and :kam>134 :kam<225 [urob „kam 180]
    ak and :kam>224 :kam<315 [urob „kam 270]
    ak :kam>314 [urob „kam 0]
    nechsmer :kam
    koniec
  • Skóre – ak dosiahnuté skóre bolo v prvej desiatke najlepších výsledkov, zmení sa zoznam rekordov
    viem skore
    urob „nrekord []
    urob „zmena 0
    opakuj 10 [ak and :zmena=0 :skore>prvok pocitadlo :rekordy [urob „nrekord veta :nrekord :skore urob „zmena 1]
    urob „nrekord veta :nrekord prvok pocitadlo :rekordy
    ]
    urob „rekordy :nrekord
    koniec
  • Vynulujskore – vynulovanie tabuľky rekordov
  • Zobrazskore – zobrazenie tabuľky rekordov
    viem zobrazskore
    nechpoz [320 200]
    text „Najlepší
    opakuj 10 [urob „y 200-pocitadlo*15
    nechpoz veta 320 :y
    text prvok pocitadlo :rekordy
    ]
    koniec
    Môžete doplniť o meno hráča, dátum dosiahnutia rekordu, …
print

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *