Několik úkolů na třídy a dědičnost.
Vytvoř třidu Ctverec
s jedním atributem strana
a metodami obvod()
, obsah()
a rozdil_obsahu(jiny_ctverec)
, která vrátí rozdíl obsahů dvou
čtverců – zadaného a toho jehož metodu voláme.
Vytvoř třídu 'Kruh' s atributem 'polomer' a stejnými metodami 'obvod()' a 'obsah()' jako měla minule třída 'Ctverec'.
Vytvoř třídu 'Obdelnik' s atributy pro délky stran a opět stejnými metodami 'obvod()' a 'obsah()' jako měla minule třída 'Ctverec'.
Zkus použít dědičnost tak, aby třídy 'Ctverec', 'Kruh' i 'Obdelnik' mohly používat společnou metodu 'rozdil_obsahu(jiny_objekt)' a aby tato metoda fungovala i mezi objekty různých tříd.
Takže bude například možné zjistit rozdíl obsahu čtverce a kruhu
V další části si vyzkoušíme naprogramovat Šachy.
Stáhni si archiv s hrou.
Aktivuj si virtuální prostředí.
Nainstaluj knihovnu pyglet
pomocí příkazu:
$ python -m pip install pyglet
a spusť python ui.py
.
Doufám, že uvidíš šachovnici. Figurkami se dá hýbat tažením myší, ale není hotová kontrola pravidel.
Následující úkoly kontrolu pravidel doplňují. Můžeš je dělat (skoro) v jakémkoli pořadí, ale ty dřívější jsou většinou jednodušší.
Pro jednoduchost neřeš šach, mat ani pat.
Toto jsou z velké části úkoly na orientaci v cizím kódu. Nezapomeň, že nemusíš úplně rozumět předpřipraveným funkcím/třídám/metodám, dokud je nechceš měnit (nebo se jimi inspirovat). Čti ale dokumentační řetězce, které popisují, co která věc dělá.
Pravidla šachu jsou k dispozici např. na Wikipedii.
♞ Doplň třídu pro koně s příslušnými metodami over_tah
a __init__
.
Použij ji v Sachovnice.__init__
.
Odevzdej novou třídu.
♚ Doplň třídu pro krále s příslušnými metodami over_tah
a __init__
.
Použij ji v Sachovnice.__init__
.
Rošádu zatím neřeš.
Odevzdej novou třídu.
♝ Doplň třídu pro střelce s příslušnými metodami over_tah
a __init__
.
Použij ji v Sachovnice.__init__
.
Odevzdej novou třídu.
♛ Doplň třídu pro dámu s příslušnými metodami over_tah
a __init__
.
Použij ji v Sachovnice.__init__
.
Odevzdej novou třídu.
Změň třídu Sachovnice
tak, aby se hráči museli ve hře střídat.
Začíná bílý.
(Nápověda: bude potřeba nový atribut hrac_na_tahu
.)
Odevzdej změněnou třídu Sachovnice
.
♟ Doplň třídu pro pěšce s příslušnými metodami over_tah
, tahni
a __init__
.
Použij ji v Sachovnice.__init__
.
Pozor na to, že:
Odevzdej změněnou třídu.
Umožni rošádu. Tu hráč zadá tak, že krále posune na věž.
Odevzdej novou třídu.