Informatika2-2016/Gyakorlat9

A MathWikiből
A lap korábbi változatát látod, amilyen Nyida (vitalap | szerkesztései) 2016. április 13., 11:55-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Feladatok

Overload

  1. Írjunk egy függvényt, aminek az első argumentuma n, egy int típusú változó. A függvény térjen vissza True-val, ha annyi extra paraméterrel hívták meg, mint az első bemeneti paraméter értéke, egyébként térjen vissza False-szal.
  2. Definiáljunk egy szumma függvényt, ami tetszőlegesen sok bemeneti paraméterének összegével tér vissza!
    1. Kezeljük le a kivételt, ha a paraméterek típusa nem azonos!
  3. Definiáljunk egy print_words függvényt, úgy, hogy a megadott (akármennyi) szavakat annyiszor írja ki, amennyit megadunk bemenetnként (szavanként)!
    1. Kezejük le kivételként, ha a bemeneten nem egész számot adtak meg a szó gyakoriságára!

Sakk

Ha még maradt idő. Definiáljuk a Piece osztályt. Ez reprezentál egy sakkbábut, tároljuk a pozícióját a táblán két koodinátával, a színét (black/white), illetve a __repr__ írja ki, hogy hol áll (A2, G3 etc.)!

  • Definiáljuk a bábu leszármazottjaként a King és a Pawn osztályokat!
  • Minden leszármazottnak legyen egy move(pos) metódusa, ahol a pos egy sztring (A3, G2 etc.)! Mozgassuk el a bábut, ha szabályos a lépés!
  • Definiáljuk a PieceMoveError osztályt. Ha szabálytalan a lépés, dobjunk egy ilyen exceptiont és kezeljük le!

Legyen most egy Board osztályunk! Két listát tároljunk: white és black, a játékosok bábuival!

  • Legyen a Board osztálynak egy move(player, pos1, pos2) metódust, ami a pos1 pozícióban álló bábut a pos2 helyre mozgatja, ha a lépés szabályos!
    • A normál szabályok mellett vegyük figyelembe, hogy áll-e ott más bábu! Ha saját bábu áll a mezőn, a lépés szabálytalan, ha ellenfél bábuja, akkor távolítsuk el a pályáról!
    • Ha maradt időnk, kezdjük el írni a Knight, Rook, Bishop és Queen osztályokat.
    • Oldjuk meg, hogy a Pawn ne állhasson az ellenfél alapvonalán!
Személyes eszközök