Sjakk er et av verdens mest populære brettspill. I denne oppgaven skal du implementere spillet sjakk etter beste evne. Om du er usikker på reglene, kan du lese deg opp her.
Du står fritt til å implementere sjakk så komplisert du selv ønsker, men som et minimum må programmet inkludere:
- Grafisk representasjon av brettet (Tips: Sjakkbrikker er en del av unicode)
- Mulighet for å taste inn trekk
- Oppdagelse av ugyldige trekk (se bort fra en passant)
- Oppdagelse av sjakk matt
Andre ting som kan være fint å ha med:
- Lagring og lasting av spill
- Generering av gyldige trekk, slik at du kan lage en (veldig dum) sjakkcomputer som spiller tilfeldige trekk
Dette er en veldig vanskelig og tidkrevende oppgave, men gir god trening i å skrive store programmer og tenke abstrakt.
Eksempel på kjøring
♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ Hvit i trekket. Oppgi et trekk: e2e4 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ . . . . . . . . . . . . . . . . . . . . . . . . . ♙ . . . . . . . . . . . . . . ♙ ♙ ♙ ♙ . ♙ ♙ ♙ ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ Svart i trekket. Oppgi et trekk: c7c5 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ♟ ♟ . ♟ ♟ ♟ ♟ ♟ . . . . . . . . . . . . ♟ . . . . . . . . . . . . ♙ . . . . . . . . . . . . . . ♙ ♙ ♙ ♙ . ♙ ♙ ♙ ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ Hvit i trekket. Oppgi et trekk: