Auf einem 8×8-Brett legen zwei Spieler abwechslungsweise gelbe und rote Spielsteine. Zu Beginn des Spiels sind je zwei gelbe und rote Steine in der Mitte des Spielbretts gelegt. Die Spielsteine können per Mausklick in leere Zellen gelegt werden, bei welchen mindestens eine der benachbarten Zellen oben, unten, links oder rechts bereits belegt ist. |
|
Wird ein Stein gelegt, so werden alle gegnerischen Steine, die sich in Reihen oder Diagonalen zwischen dem neuen und bereits gelegten Steinen der eigenen Farbe befinden, umgedreht. Das Ziel des Spiels ist es, am Ende möglichst viel eigene Steine auf dem Brett zu haben. Das Spiel ist fertig, wenn alle Zellen belegt sind.
Server![]() |
Client![]() |
Diese Implementierung des Spieles ermöglicht zwei Spielern über das Internet zu spielen. Zuerst muss das Serverprogramm gestartet werden. Der Server wartet auf einem bestimmten IP-Port auf den Client. Der Client erstellt danach unter der Verwendung der IP-Adresse des Servers und der Portnummer, welche im Serverprogramm festgelegt ist, eine Verbindung zum Server. Zum Testen kann man das Server- und das Client-Programm auf dem gleichen Computer ausführen, indem man die TigerJython-IDE zweimal startet und die IP-Adresse localhost verwendet.
Erklärungen zum Programmcode:
| locs = toList(loc.getNeighbourLocations(0.5)): Liste der 4 direkt benachbarten Zellen | |
| for c in range (0, 360, 45): 8 Richtungen 0, 45, 90, 135,...315 | |
| loc = location.getNeighbourLocation(c): liefert benachbarte Zellen, die in der Richtung c liegen | |
| all = getOccupiedLocations(): Liste aller besetzen Zellen | |
| len(all) Anzahl der Elemente in der Liste all |
Die Programmen für den Server und Client sind fast gleich. Insbesondere werden viele Funktionen in beiden Programmen verwendet. Anstelle der Code-Dupplikation können diese Programmteile in einer separaten Datei reversilib.py gespeichert werden. Diese muss dann im Server- und Client-Programm importiert werden.
---------------------------------------------------------------------------------------------------------------------------------------