Projekte
SPiChess
Ein SPiCboard-Schachcomputer.
Eigenschaften
- Verwendung des NegaMax-Algorithmus mit einstellbarer Suchtiefe (≙ Schwierigkeit)
- optional mit Ausgabe über das OLED Display (Spielfeld und Züge nach der algebraischen Schachnotation)
- (kleine) Datenbank mit populären Eröffnungszügen
- Unterstützung für Rochade und en passant
Steuerung
Bestätigen und Abbrechen mit den Tastern an PD2
(BUTTON0
) und PD3
(BUTTON1
), Auswahl der Felder mit dem Potentiometer.
Anzeige
Die Ausgabe erfolgt über die LEDs sowie die 7-Segment-Anzeige, optional auch ergänzend über das OLED-Display.
Die Leuchtdioden sind in Viererblöcke (mit eindeutigen Farben) unterteilt, wobei der untere Block für den ersten Spieler (weiß) und der obere dem zweiten Spieler (schwarz) zugeordnet wird.
LED | Bedeutung |
---|---|
⭙ rot | Spieler gewinnt (oder unentschieden, sofern beide rote LEDs leuchten) |
⭙ gelb | Der entsprechende Spieler ist am Zug |
⭙ grün | 7 Segmentanzeige zeigt das Ausgangsfeld für den Zug an |
⭙ blau | 7 Segmentanzeige zeigt das Zielfeld an |
Zu Beginn (nach einer kurzen Titelanimation) müssen die Spieler P1
(für Player 1, weiß) und P2
eingestellt werden. Ein menschlicher Spieler wird mit hu
(human) ausgewählt, L1
bis L5
aus - die Zahl steht für die Schwierigkeit (genauer: die Rekursionstiefe des NegaMax-Algorithmus), was auch die Dauer Die 7-Segment-Anzeige gibt primär das Feld als Kombination von Buchstabe (a
-h
) und Zahl (1
-8
) aus. Der Wechsel zwischen Ausgangs- und Zielfeld wird mit to
dargestellt, ein erfolgreicher Zug mit ok
. Ein ungültiger Zug wird für eine Sekunde mit In
(invalid) gekennzeichnet, bevor eine neue Eingabe beginnt. Das Auswählen eines Ausgangsfeldes mit einer gegnerischen Figur wird mit PC
abgebrochen, Felder ohne Figur mit --
.
Fehlend (noch zu implementieren), Ideen
- Schachuhr (die auch die KI beeinflusst)
- größere/bessere Eröffnungsdatenbank
- und generell: effizientere Datenstrukturen
- sowie besserer Spielalgorithmus