|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectKalahSpiel
public class KalahSpiel
Dieses BlueJ-Projekt ist ein sehr komplexes Beispiel, das aus der Welt der Spiele-Programmierung stammt. Den Hamstern wird das Spielen beigebracht, so dass sie in der Lage sind, gegen uns Menschen oder gegen andere Hamster so genannte Zwei-Spieler-Strategiespiele wie Schach, Mühle, Dame, 4-Gewinnt oder Reversi zu spielen, und die Hamster werden so gut sein, dass wir als Menschen kaum noch eine Chance haben, gegen sie zu gewinnen.
Das Spiel, an dem das zugrunde liegende Prinzip demonstriert wird, nennt sich Kalah. Kalah ist ein afrikanisches Brettspiel für zwei Spieler. Es besteht aus einem Brett mit zwei Reihen von je sechs Mulden, in denen anfangs je sechs Steine liegen, und zwei weiteren Mulden, die Kalah heißen und anfangs leer sind. Spieler A gehören die oberen Löcher und die linke Kalah, Spieler B die unteren Löcher und die rechte Kalah. Ziel der beiden Spieler ist es, im Laufe eines Spiels möglichst viele Steine in die eigene Kalah zu bringen. Spieler A beginnt das Spiel. Ein Spielzug läuft dabei wie folgt ab: (1) Der Spieler wählt eine seiner Mulden (nicht seine Kalah) aus, die nicht leer ist, entleert sie und verteilt auf die entgegen dem Uhrzeigersinn folgenden Mulden je einen Stein, wobei er die Kalah des Gegners auslässt. (2) Landet der letzte Stein in einer eigenen leeren Mulde (keine Kalah) und ist die gegenüberliegende Mulde des Gegners nicht leer, so kommen der Stein sowie alle Steine der gegenüberliegenden Mulde in die eigene Kalah. (3) Landet der letzte Stein in der eigenen Kalah, so muss der Spieler noch einmal ziehen. Ansonsten ist der Gegner an der Reihe. Das Spiel ist beendet, wenn ein Spieler an der Reihe ist, aber keinen erlaubten Zug mehr ausführen kann, d.h. alle seine Mulden leer sind. Der andere Spieler darf dann alle Steine, die noch in seinen Mulden liegen, in die eigene Kalah legen. Gewonnen hat der Spieler, der anschließend mehr Steine in seiner Kalah liegen hat. Bei Gleichstand endet das Spiel mit einem Unentschieden.
Constructor Summary | |
---|---|
KalahSpiel()
initialisieren eines Kalah-Spiels |
Method Summary | |
---|---|
static void |
main(String[] args)
Ein moegliches Spiel |
void |
spielen(Spieler spielerA,
Spieler spielerB)
Spielen eines Kalah-Spiels |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public KalahSpiel()
Method Detail |
---|
public static void main(String[] args)
public void spielen(Spieler spielerA, Spieler spielerB)
spielerA
- der Spieler, der Spieler A sein sollspielerB
- der Spieler, der Spieler B sein soll
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |