84 lines
2.1 KiB
Markdown
84 lines
2.1 KiB
Markdown
# c/c++ Abschlussprojekt - Schach
|
|
|
|
## Notwendige Umsetzungen
|
|
|
|
1. Klasse für Spielbrett
|
|
2. Oberklasse für Spielfiguren
|
|
1. Bauer
|
|
2. Dame
|
|
3. König
|
|
4. Läufer
|
|
5. Turm
|
|
6. Springer
|
|
3. Fancy User Interface
|
|
4. Speicherung des Spielbretts
|
|
5. Unentschieden anbieten
|
|
6. 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?
|
|
|
|
1. Bedienung per Maus
|
|
2. Multiplayer
|
|
3. Historie der Spielzüge
|
|
4. Gravejard der geschlagenen Figuren
|
|
5. 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
|
|
-
|