Chessboard.cpp | ||
Chessboard.h | ||
Chesspiece.cpp | ||
Chesspiece.h | ||
ChessUtils.cpp | ||
ChessUtils.h | ||
main.cpp | ||
main.exe | ||
MoveList.cpp | ||
MoveList.h | ||
OldCode.txt | ||
Pawn.cpp | ||
Pawn.h | ||
README.md | ||
saveStats.json |
c/c++ Abschlussprojekt - Schach
Notwendige Umsetzungen
- Klasse für Spielbrett
- Oberklasse für Spielfiguren
- Bauer
- Dame
- König
- Läufer
- Turm
- Springer
- Fancy User Interface
- Speicherung des Spielbretts
- Unentschieden anbieten
- Aufgegeben
Spielbrett
- 8x8 Matrix
- ANSI Linien checken
- Unterscheidung von schwarzen und weißen Feldern
- UTF-8 Spielfiguren
- draw() Funktion
- movement
- Schachnotation
- oder Klickbar?
- Beschriftung des Spielbretts
Spielfiguren
- Interface für Implementierung?
- Default Felder:
- Art der Figure
- UTF-8 Code
- Schlagen: Ich sehe dich nach movement Regeln -> Du stirbst
- Bauer:
- Movement: 1 Felder, außer bei Start 1-2 Felder
- Schlagen: 1 Feld vor Diagonal
- Spezialmove:
- Beförderung
- En Passent - Wie?
- Dame:
- Movement: Fuck it, i do what i want
- König:
- Movement: Körperklaus. Ich kann nur ein Feld nach überall
- Spezialmove: Castlen
- Läufer:
- Movement: Die Diagnal ist mir
- Turm:
- Movement: Vertikal und Horizontal
- Springer:
- Movement: L-Bewegung (2 nach vorn + 1 nach links oder rechts); Krake
- Spezial Moves:
- Rochade -> Kurz/Lang
- En Passant
- Stalemate
- Bauer: 2 Felder
- Umwandeln
Optional wenn Lust und Zeit?
- Bedienung per Maus
- Multiplayer
- Historie der Spielzüge
- Gravejard der geschlagenen Figuren
- König platzieren -> Anzeigen wer gewinnt
Gedankensammlung
- Initialisierung:
- Brett zeichnen
- Figuren mit Zugmöglichkeiten ermitteln
- Züge kalkulieren
- Objekt mit allen Figuren erstellen -> alle Figuren initialisieren
- Kalkulation der Züge
- Anhand der aktuellen Position
- Mit einbeziehen, dass Zug König nicht in Mate versetzt (verboten)
- Sonder Züge, wie En passant, Rochade (Lang, Kurz), Bauern zwei Feld, beachten
- Prüfen, ob andere Figuren im Weg stehen
- Array von Linked Lists
- Array Index steht für Richtung von Bewegungen (diagonalen, L, Gerade)
- alles droppen, was nach pos mit Figur kommt