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 6. April 2006, 07:48 Uhr von Martin Häcker (Diskussion) (verschönerungs aufgabe in zusatz verschoben)

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.


Zusatzaufgabe

Verschönere die Ausgabe:

  • so dass man nichts sieht, wenn ein Feld leer ist.
  • so dass 1 und 2 durch "+" und "x" ersetzt wird
  • überlege wie man diese Ausgabe ohne Fallunterscheidung machen kann (Tip: Array)

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.