TurboSchach/README.md

1.7 KiB

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)