Třídy a dědičnost  11. května 2020

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 (viz kdyžtak README.md v archivu) a spusť python sachy.py.

Doufám, že zjistíš že se figurkama 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á.

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.