Sie haben die Aufgabe einige grundlegende Schachfunktionen zu implementieren. Wir beschränken uns auf Verwaltungsfunktionen (Initialisieren, Schachfiguren auf dem Brett zu platzieren, etc.) und erste Überlegungen, wie sich Schachfiguren gegenseitig bedrohen können (Teilen zwei verschiedene Felder eine Zugbahn einer bestimmten Schachfigur?).
Schach wird auf einem quadratischen Brett mit acht Spalten (files, mit den Buchstaben "a" bis "h" bezeichnet) und acht Zeilen (ranks, mit den Ziffern 1 bis 8 bezeichnet) gespielt. Ein Feld (square) ist somit mit der Kombination eines file-Bezeichners und eines rank-Bezeichners eindeutig bestimmt. Viele der zu implementierenden Funktionen werden mit diesen Postionen zu tun haben.
Zur Illustration ist hier nochmal ein Schachbrett abgebildet:
Da die vorgegebenen Datentypen auf Englisch bezeichnet sind, hier nochmal die Übersetzung der wichtigsten Begriffe:
| Englisch | Deutsch |
|---|---|
| Chess board | Schachbrett |
| Square | Feld |
| File | Spalte |
| Rank | Zeile |
| to capture | schlagen |
| Pawn | Bauer |
| Rook | Turm |
| Knight | Springer |
| Bishop | Läufer |
| Queen | Dame |
| King | König |
Sie können nach einem erfolgreichen Build das Programm auf folgende Weisen aufrufen:
./chessEs wird ein Schachbrett mit den Figuren in der Startaufstellung ausgegeben.
./chess testEs werden die automatisierten Unit Tests ausgeführt.
Das Projekt besteht aus folgenden Files
1.7.0