Třídy a dědičnost  25. května 2023

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

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.

0.

♞ 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.

1.

♚ 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.

2.

♝ 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.

3.

♛ 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.

4.

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.

5.

♟ 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:

  • Pěšec se může pohybovat o jedno pole dopředu, pokud nebere figuru.
  • Pěšec bere diagonálně (o jedno pole)
  • Pěšec v základní pozici se může pohnout o dvě pole dopředu (pokud nebere figuru).
  • Pěšec, který dorazí na konec šachovnice, se povýší na dámu. (Šachy umožňují i povýšení na koně, podle výběru hráče – ale to zatím neřeš).

Odevzdej změněnou třídu.

6.

Umožni rošádu. Tu hráč zadá tak, že krále posune na věž.

Odevzdej novou třídu.