>> Praktikum - OOP mit JAVA <<

OO-Software-Praktikum WS 2002/2003

Im Rahmen des Praktikums sollte das Spiel 4-Gewinnt entwickelt werden

Spielregeln (4 Gewinnt):

  • Zwei Spieler spielen gegeneinander auf einem senkrecht stehenden Spielfeld mit m×n Feldern ( n Zeilen, m Spalten) mit 5 ≤ n, m ≤ 10

  • Jeder Spieler hat Spielsteine seiner eigenen Farbe (z.B. Spieler A hat weiß und Spieler B hat schwarz) und jedes Spielfeld kann mit maximal einem Spielstein belegt sein,
    d.h.; Feldt (i,j) ∈ {schwarz, weiß leer} ∀ i ∈ {1,...,n}, j ∈ {1,...,m},t ∈ {0,...,n·m}, wobei t der Spielzug ist.

  • Das Spiel beginnt mit einem leeren Spielfeld, d.h.: Feldo (i,j) = leer ∀ i,j.
    In einem Spiel machen die Spieler abwechselnd Spielzüge, ein Aussetzen ist nicht erlaubt. Ein zufällig ausgewählter Spieler darf mit dem ersten Zug beginnen, für alle Folgespiele wechseln sich beide Spieler mit dem Anfang ab.

  • Um zu ziehen muß ein Spieler einen seiner Spielsteine fallen lassen, sodaß kein Feld unterhalb des Steines freigelassen wird,
    d.h.: z.B. Spieler A darf Feldt+1 (i,j) ≔ weiß setzen, wenn Feldt (k,j) = leer ∀ 1 ≤ k ≤ i und Feldt (k,j) ≠ leer ∀ i < k ≤ n.

  • Ein Spieler hat gewonnen, sobald er 4 Steine in einer Reihe horizontal, vertikal oder diagonal hat. Spieler A hat also gewonnen, wenn
    ∃i,j: Feldt (i+k,j) = weiß ∀ 0 ≤ k ≤ 3
    ∨ Feldt (i,j+k) = weiß ∀ 0 ≤ k ≤ 3
    ∨ Feldt (i+k,j+k) = weiß ∀ 0 ≤ k ≤ 3

Aufgabe 1:
Implementieren Sie einen Algorithmus, der zu einem gewissen Zeitpunkt t einen optimalen Gegenzug ausrechnet. Hierbei sind mehrere Zugkombinationsmöglichkeiten bis zu einer festzusetzenden Tiefe durchzuprobieren. Bei dieser gesetzten Zugtiefe wird der Spielstand durch eine Bewertungsfunktion erfasst, in der 2 oder 3 Spielsteine in einer Reihe nur dann entsprechend gute Bewertungen bekommen, wenn sie zu 4 Steinen ausbaufähig sind.

Aufgabe 2:
Entwickeln Sie mit dem Ergebnis aus Aufgabe 1 ein Spiel, in dem gegen den Computer 4-Gewinnt gespielt werden kann. Dieses Spiel soll mit Hilfe der Swing-Klassenbibliothek entwickelt werden und die Fenstergröße soll über Event-Mechanismen variabel sein.

Entwicklungsbedingungen:
Es soll mit Java (JDK 1.4) entwickelt werden und das Programm soll auf Sun-Workstations lauffähig sein. Es sind Arbeitsgruppen bis zu 4 Personen erlaubt, in denen jeder eigenständig signifikante Teilaufgaben zu bearbeiten hat. Die Aufgabenaufteilung innerhalb der Gruppe darf jede Gruppe selbst bestimmen. Die Scheinvergabe hängt von der Qualität des Ergebnisses, der sauberen objektorientierten Programmierung und für jeden einzelnen in der Gruppe von der Qualität des Mitwirkens in der Arbeitsgruppe ab.

Unsere Lösung:
Connect4 - Das von uns entwickelte Spiel als JAR-Archiv
Javadoc - Dokumentation unseres Programms