SET ist ein Spiel, das ich fast täglich spiele. Hier kann man es online spielen: https://www.setgame.com/set/puzzle . Es ist super einfach, dabei unterhaltsam und man kann es sogar gegeneinander spielen 😉 Ich bin immer erstaunt, wie wenig Leute dieses Spiel kennen.

Es geht darum, auf einem Feld von 3 x 4 Spielkarten Sets aus jeweils drei Karten mit bestimmten Eigenschaften zu erstellen. Diese Eigenschaften sind Farbe, Form, Anzahl, Muster. Von jeder Eigenschaft gibt es drei Ausprägungen. Zum Beispiel gibt es die Farben Rot, Grün, Lila. 3 x 3 x 3 x 3 macht 81 mögliche Karten.

 

Mögliche Eigenschaften der Karten

Für das Spielfeld werden 12 Karten davon zufällig ausgewählt und gelegt. Nun geht es daran ein Set von drei Karten zu finden, bei denen alle drei Ausprägungen einer der o.g. Eigenschaften unterschiedlich oder exakt gleich sind.

Set Kombination

Im Beispiel oben sind bei der Anzahl alle gleich, jedes zeigt ein Element. Bei der Farbe sind alle unterschiedlich, beim Muster sind alle unterschiedlich und in der Form sind alle unterschiedlich. Darunter ist kein Set zu sehen. Die Form ist bei allen gleich. Die Farbe bei allen unterschiedlich. Die Anzahl ist überall gleich. Aber das Muster ist leider nicht vollkommen gleich oder vollkommen unterschiedlich.

Das Spiel macht mir so viel Spaß, dass ich es gerne mehrfach hintereinander spiele. Die oben gezeigte Internetseite lässt das Spielen leider nur einmal täglich zu. Daher habe ich mir überlegt, das Spiel selbst zu programmieren. Ich habe JavaScript gewählt, weil ich damit die Darstellung auf einem HTML Canvas steuern kann. Der folgende Screenshot zeigt meinen aktuellen Stand:

Zwischenstand

Man erkennt, dass ich schon relativ weit gekommen bin, mir fehlt aber auch noch ein bisschen was 😉 Aktuell ruht das Projekt auf einem privaten Repository. Sobald ich fertig bin, werde ich es öffentlich stellen.

Mein Plan:

  • Grundgerüst erstellen (done)
  • Pseudocode schreiben (done)
  • Grafiken erstellen (done)
  • Darstellung der Grafiken auf dem Canvas (done)
  • Funktionen zur Erkennung eines Sets implementieren (done)
  • Darstellung der gefundenen Sets
  • Darstellung des Fehlerfalls, wenn die Auswahl KEIN Set ist
  • Spiel-Erklärung einbauen
  • Seite komplett responsiv gestalten

Übrigens ist die Mathematik dahinter recht interessant. Auch wenn ich dazu sagen muss, dass man dafür ein bisschen nerdig sein muss 😉 Dabei geht es häufig um die Frage, mit welcher Wahrscheinlichkeit man welche Anzahl von Sets in einem einzelnen Spielfeld finden wird. Wen es interessiert, der googlet an der Stelle schnell. Wer einfach nur spielen möchte, der probiert den Link oben aus oder kauft sich das Kartenspiel. Ich kann es nur empfehlen.