Semestrálny projekt¶
Zadanie¶
Napíšte program, ktorý umožní jednému alebo viacerým hráčom zahrať sa nejakú doskovú hru. Váš program vykreslí hraciu plochu, umožní hráčom ťahať, bude pritom kontrolovať prípustnosť ťahov a zároveň bude kontrolovať, či niektorý z hráčov nevyhral, resp. neprehral.
Témy¶
Vyberte si jednu z týchto hier, alebo sa nimi inšpirujte:
- hracie dosky s figúrkami:
- kartičkové hry:
- hry pre jedného hráča:
- edukačné hry:
- ovládanie robota Karla, programovanie Baltazára, programovanie Logo (kreslenie korytnačkou)
Môžete sa inšpirovať online hrami na internete, napr.
Pri výbere hry myslite na to, že by sa mala ovládať najmä myšou (klikanie, ťahanie), mala by obsahovať aspoň jeden animovaný prvok, a samotná hracia plocha sa vnútorne reprezentuje ako nejaké dvojrozmerné pole.
Je vhodné si tému projektu nechať schváliť cvičiacimi, aby ste mali istotu, že to čo idete programovať je dobrá téma. Samozrejme, že tému si môžete hocikedy zmeniť.
Pravidlá vybranej hry si môžete prispôsobiť alebo aj dosť radikálne zmeniť.
Požiadavky¶
Váš program musí spĺňať nasledovné požiadavky:
program musí byť realizovaný ako inštancia vašej triedy
Program, napr.import tkinter class Program: def __init__(self): ... tkinter.mainloop() ... Program()
okrem tejto triedy definujte aspoň jednu ďalšiu triedu pre popis nejakej časti hry, napr. figúrky, kartičky, políčka, hráč, nepriateľ, ... túto triedu využijete v hlavnom programe (tieto pomocné triedy môžete definovať buď v tom istom module alebo v ďalšom)
okrem definícíí týchto tried a inštancie triedy
Program, nepoužívajte žiadne globálne premenné ani funkciezvoľte si takú hru, aby sa pri realizácii hracej plochy využilo dvojrozmerné pole (napr. šachovnica, labyrint, ...)
Ďalej musí platiť:
- grafika je realizovaná modulom
tkinter:- na ovládanie hry použite udalosti myši (klikanie, ťahanie)
- využite časovač (pomocou
after()) - môžete využiť aj klávesnicu
- apoň nejaká časť grafiky musí byť realizovaná obrázkami (.png, .gif), pričom musíte simulovať aspoň jednu animáciu (striedanie niekoľkých obrázkov v časovači)
- môžete využiť aj také funkcie a vlastnosti
tkinter, ktoré sme sa neučili
- program by mal čítať aj zapisovať aspoň jeden textový súbor, napr. rozohratú partiu, úvodné nastavenie, rôzne nastavenia hry, tabuľka najlepších výsledkov a pod.
- môžete ešte použiť aj moduly
random,mathajson
Dopredu si dohodnote s cvičiacimi, ak by mala vaša téma problém s niektorou z týchto požiadaviek.
Hodnotenie¶
Projekt budú hodnotiť vaši cvičiaci, ale musíte ho odovzdať na úlohový server L.I.S.T., pričom
- za splnenie všetkých požiadaviek bude základných 5 bodov (nedáva sa menej ako 5 bodov)
- za umelecký dojem, pohodlné ovládanie, nové zaujímavé prvky, použitie nejakého náročnejšie algoritmu a pod. do 5 bodov - tieto body sa budú pridávať k základným 5 bodom
Takto získané body sa pripočítavajú k bodom ku skúške len vtedy, ak ich získate ešte pred samotným termínom skúšky.