# 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 ### 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 ## Optional wenn Lust und Zeit? 1. Bedienung per Maus 2. Multiplayer 3. Historie der Spielzüge # 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 (Linked List und alles droppen, was nach pso mit Figur kommt) -