Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs2006/Tag 4/Vier Gewinnt

< Javakurs2006‎ | Tag 4
Version vom 5. April 2006, 15:46 Uhr von Martin Häcker (Diskussion) (vier gewinnt verschoben)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Informationen zum Spiel Vier gewinnt findet ihr hier.

  • Als erstes macht es Sinn sich ein Spielbrett anzulegen.
Lege dazu eine Klasse GameBoard an. Diese könnte Methoden enthalten wie:
  • placeWhiteStone(int column), einen weissen Stein in die columnte Spalte wirft.
  • placeBlackStone(int column), einen schwarzen Stein in die columnte Spalte wirft.
  • Dieses Spielbrett sollte jetzt auf dem Bildschirm in der Form:
---------------
|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|0|0|0|0|0|
---------------
|0|0|2|1|0|0|0|
---------------

angezeigt werden. Wobei 0 für ein leeres Feld, 1 für ein weisses Feld und 2 für ein schwarzes Feld steht. Nützlich wäre hier in der Klasse GameBoard eine Methode toString() zu implementieren.
  • Benutze nun die Methode String promptUserForString(String question) vom API-Übungsblatt um den vom Spieler gewünschten Zug einzulesen.
  • Überlege dir, wo und wie du feststellen willst ob ein Spieler gewonnen hat und wenn ja wer.
  • Verschönere die Ausgabe:
    • so dass man nichts sieht, wenn ein Feld leer ist.
    • so dass 1 und 2 durch "+" und "x" ersetzt wird

Zusatzaufgabe

Erweitere das Spiel um einen Computer-Spieler, der:

  • Einen Zufälligen Zug macht
  • Einen Gewinn-Zug macht, wenn er kann
  • Einen Zug vermeidet, der zum Gewinn des Gegners führt, wenn er kann

Hinweis: Um eine KI zu implementieren ist es sinnvoll entweder:

  • einen Zug zurücknehmen zu können
  • eine Kopie eines Spielfeldes machen zu können

Damit ist es für die KI einfach einen Zug auszuprobieren.