ChromoKo Pseudo-Code Oberflächenelemente Spielbrett. Dieses besteht aus 30 Kanten (1 bis 30) und 24 Knoten (1 bis 24) Auswahl der drei Grundfarben. Aktiver Spieler: Anzeige, welcher Spieler am Zug ist. Punktestand: Aktueller Punktestand für Rot und Blau, eventuell unterschieden in die drei möglichen Punktewerte. Reset-Knopf um neues Spiel beginnen zu können. Farben und Punkte Farben intern als Zahlen darstellen. Mittels Referenztabelle dann für die Oberfläche übersetzten. Vorschlag: 1 für Rot, 10 für Gelb, 100 für Blau. Dann kann intern einfach beim Mischen der Farben summiert werden. Alle auftretenden Kombinationen können unterschieden werden. Dadurch ist auch eine Zuordnung zu der Punktevergabe möglich. Farb-Punkte Tabelle Farbwert Farbe Teilfarbe 1 Teilfarbe 2 0 1 2 3 10 11 12 20 21 30 100 101 102 110 111 120 200 201 210 300 Weiß Rot1 Rot2 Rot3 Gelb1 Orange1 Orange2 Gelb2 Orange3 Gelb3 Blau1 Lila1 Lila2 Grün1 Schwarz Grün3 Blau2 Lila3 Grün2 Blau3 0 1 1 1 1 1 1 10 1 10 100 1 1 10 1 10 100 1 10 100 0 0 1 1 0 10 1 10 10 10 0 100 1 100 10 10 100 100 100 100 (Teilfarbe 3) 0 0 0 1 0 0 10 0 10 10 0 0 100 0 100 100 0 100 100 100 Punkte Spieler 0 0 0 0 0 1 2 0 4 0 0 0 0 1 0 4 0 0 2 0 X X X X X 0 0 X 0 X X X X 1 X 1 X X 1 X Man könnte also mit 20 Farben arbeiten. Das wird in der Darstellung aber eher unübersichtlich. Daher die Beschränkung auf 8 Farben (inkl. Schwarz und Weiß). Wird diese Tabelle intern abgelegt, kann man aber die Farben und vielleicht die Punkte im Nachhinein noch flexibel anpassen. Spielstand Der Spielstand wird durch die Färbung der 30 Kanten festgelegt. Daraus ergeben sich die auch die Farben der 24 Knoten. Weiters braucht man einen Merker für Ko, einen Merker für den Spieler der dran ist. Die Punkteverteilung kann aufgrund des Spielstandes berechnet werden. Um den Spielstand zu speichern braucht man zwei Tabellen. (Farbwerte zu Beginn mit 0 initialisieren.) Kantentabelle Kante 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Knoten 1 1 1 2 3 3 4 5 5 6 7 8 8 9 10 11 11 12 13 13 14 15 16 16 17 18 19 20 21 21 23 Knoten 2 2 4 5 4 7 8 6 9 10 11 9 12 13 14 12 15 16 14 17 18 19 17 20 21 22 20 23 22 24 24 Farbwert 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Ko Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Knotentabelle Die Farben der Knotentabelle werden mit 0/weiß initialisiert. Knoten Kante 1 Kante 2 Kante 3 1 1 2 X 2 1 3 X 3 4 5 X 4 2 4 6 5 3 6 9 6 7 9 X 7 5 10 X 8 6 11 12 Farbwert 0 0 0 0 0 0 0 0 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 8 9 10 12 13 14 16 17 19 20 21 23 24 25 27 29 11 14 15 15 18 18 21 22 22 25 26 26 28 28 30 30 13 X 16 17 19 20 X 23 24 X X 27 29 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Die aktuelle Farbe lässt sich aus der Kantentabelle berechnen durch: Berechne Knotenfarbe Für i=1 bis 24 Knoten i wird berechnet Setze Farbe von Knoten i auf 0 Für j=1 bis 3 Farbe von Knoten i = Farbe von Knoten i plus Farbe der Knoten-Kante j Nächstes j Nächstes i Spieler Merker für den aktuellen Spieler: 0 ist Rot, 1 ist Blau. Punktestand-Tabelle Unterscheide insgesamt 8 Werte (bzw. 20, wenn man für alle verschiedenen Farben Punkte vergeben will). Punktestand mit 0 initialisieren. Punktemerker 1 2 3 4 5 6 7 8 9 10 11 12 13 Farbwert 0 1 2 3 10 11 12 20 21 30 100 101 102 Punktestand 0 0 0 0 0 0 0 0 0 0 0 0 0 14 15 16 17 18 19 20 110 111 120 200 201 210 300 0 0 0 0 0 0 0 Der Punktestand ergibt sich aus der Knotentabelle: Für i=1 bis 20 Punktestand i wird berechnet Setze Punktestand von Punktemerker j auf 0 Für j=1 bis 24 Wenn Farbe von Knoten j gleich Farbe von Punktemerker i, dann Punktestand von Punktemerker j = Punktestand von Punktemerker j + Punktewert der Farbe von Knoten j (siehe Farb-Punkte Tabelle) Sonst weiter Nächstes j Nächstes i Spielerpunkte Die Punkte der Spieler ergeben sich dann aus der Punktestand Tabelle und der Farb-Punkte Tabelle. Punkte Rot Setzte Punkte Rot auf 0 Für i=1 bis 20 Wenn Farbwert von Punktemerker i Rot zugeordnet ist, dann Punkte Rot = Punkte Rot + Sonst weiter Nächstes i Ebenso für Blau. Pass-Merker Pass-Merker auf 0. Anzahl-Farbkanten Anzahl-Farbkanten auf 0. Oberfläche aufbauen Wie oben angegeben kann man für jedes Objekt die Tabellen auslesen. Dabei eventuell noch Farbwerte in Farben übersetzen. Spielen Reset Bei Klick auf Reset initialisier Tabellen und Zeug. Neues Spiel. Farbauswahl Bei Klick auf Farbauswahl speichere aktuelle Grundfarbe. (Am Beginn auf Gelb initialisiert.) Passen Bei Klick auf Passen zähle 1 zu Pass-Merker dazu. Wenn Pass-Merker >1 dann Spielende. Sonst setze bei allen Kanten den Ko-Merker auf Nein und wechsle den Spielermerker (mit Anzeige am Bildschirm). (Bei einfachem Spiel braucht man kein passen.) Kantenauswahl Bei Klick auf Kante Wenn Kante durch Ko gesperrt Fehler Wenn Kantenfarbe nicht weiß Fehler Sonst Stelle bei allen Kanten den Ko-Merker auf Nein Schreibe aktuelle Farbe in die angeklickte Kante Zähle 1 zu Anzahl-Farbkanten dazu Stelle Ko-Merker der aktuellen Kante auf Ja Berechne Knotenfarben Überprüfe der Reihe nach Knotenfarben auf Schwarz Gibt es schwarzen Knoten, dann melde Ko und merke die Kanten zum aktuellen Knoten (Knotenkante) warte auf Klick auf Kante Bei Klick auf Kante Wenn keine Knotenkante Fehler Sonst Wenn Kante durch Ko gesperrt (aktuelle Kante) Fehler Sonst Setzte Ko-Merker der Knotenkante auf Ja Färbe ausgewählte Knotenkante Weiß Ziehe 1 von Anzahl-Farbkanten ab Berechne Knotenfarben Berechne Punktestand und Spielerpunkte Setze Pass-Merker auf 0 Wenn Anzahl-Farbkanten = 30 dann Spielende Wechsle Spielermerker Anpassen Anzeige