Projekt "Game of Life" - Aufgabenstellung
Eines der ältesten und bekanntesten Simulationsspiele von primitivem
Leben ist das "Game of Life", das von dem Mathematiker John H. Conway vorgeschlagen
wurde.
Game of Life wird auf einem rechteckigen Spielfeld mit einer festen
Anzahl Zellen gespielt wird. Jedes Element des Spielfelds enthält
eine Zelle, die entweder tot ist oder lebt. Der Anfangszustand des Spielfelds
wird per Zufallszahlengenerator ermittelt oder vom Benutzer vorgegeben.
Ein Folgezustand wird für die komplette Population auf der Basis der
folgenden Regeln bestimmt:
-
Hat eine tote Zelle exakt drei lebende Nachbarn (von acht möglichen),
so wird sie in der nächsten Generation lebendig sein. Andernfalls
bleibt sie tot.
-
Hat eine lebende Zelle weniger als zwei oder mehr als drei lebende Nachbarn,
so wird sie in der nächsten Generation tot sein, andernfalls bleibt
sie lebendig. (Im ersten Fall stirbt sie an Vereinsamung, im zweiten an
Überbevölkerung).
Man schreibe ein Java-Programm, das das Spiel realisiert und folgenden
Sollkonzeptrahmen erfüllt.
Sollkonzeptrahmen
1. Systemziele
Das System realisiert eines der ältesten Simulationen des Wachstums
von Zellkulturen, das unter dem Namen "Game of Life" bekannt ist und von
dem Mathematiker John H. Conway [Con71] vorgeschlagen
wurde.
Der Anfangszustand des Spielfelds, d.h. die Anfangsbelegung der Plätze
mit lebenden oder toten Zellen, wird zufällig durch das Programm vorgegeben
oder vom Benutzer bestimmt. Ferner kann der Benutzer zu beliebigen Zeiten
den Berechnungslauf anhalten, um z.B. eine Generation genauer zu betrachten,
oder ganz abbrechen. Die Nummer der aktuellen Generation wird durch das
Programm angezeigt.
Das System benötigt zum Ablauf nur das Java-Laufzeitsystem.
2. Kurzbeschreibung
Die Kurzbeschreibung besteht aus einer auf das Wesentliche reduzierten
Fassung des Sollkonzepts.
3. Benutzermodell
Der Benutzer ist in der Lage, auf dem vorliegenden Rechner das Java-Laufzeitsystem
zu starten, ferner kann er Eingaben gemäß den Angaben der Benutzungsschnittstelle
vornehmen.
Weitergehende Kenntnisse des Betriebssystems oder der verwendeten Programmiersprache
sind nicht erforderlich.
4. Basismaschine
Das System arbeitet im Dialog und benötigt zum Ablauf neben Zentraleinheit
(PC oder Mac) eine Tastatur, eine Maus und einen Bildschirm sowie das Java-Laufzeitsystem.
Weitere spezielle Hard- oder Softwareanforderungen bestehen nicht.
5. Benutzungsschnittstelle
Das Programm berechnet nacheinander alle Generationen von Zellkulturen
auf der Grundlage der Regeln des Game of Life und zeigt sie auf dem Bildschirm
zusammen mit der Nummer der Generation an.
Lebende Zellen werden durch einen roten, tote Zellen durch einen schwarzen
Punkt angezeigt.
Das Programm erlaubt die Analyse von Zellkulturen bis zu einer maximalen
Größe.
Eingaben erfolgen - soweit möglich - durch die Maus, sonst über
die Tastatur.
Dem Benutzer stehen folgende Eingriffs-/Eingabemöglichkeiten zur
Verfügung: Festlegung der Größe des Spielfelds, Erzeugung
einer zufälligen Verteilung von lebenden und toten Zellen als Anfangsgeneration,
Vorgabe einer frei wählbaren Anfangsgeneration, Löschen des gesamten
Spielfelds, Festlegung der Ausgabegeschwindigkeit von Zellgenerationen,
Starten und Stoppen der Berechnung von Generationen, Beenden des Programms.
Alle Eingabemöglichkeiten können zu beliebiger Zeit während
des Programmlaufs geschehen.
Fehlersituationen und fehlerhafte Eingaben werden durch aussagekräftige
Meldungen angezeigt, fehlerhafte Eingaben ggf. erneut angefordert.
6. Erweiterungsmöglichkeiten
-
Einlesen von Anfangskonfigurationen von Zellkulturen aus einer Datei
-
Abspeichern von Zellkulturen
-
automatische Erkennung und Meldung von stabilen oder zyklischen Zellkulturen
7. Grobstruktur
-
Initialisierung
-
Eingaberoutine für Benutzereingaben
-
Erzeugung einer Folgegeneration
-
Bestimmung der Zahl lebender Nachbarn einer Zelle
-
Ausgabe einer Generation
8. Literatur
[Con71] M. Gardner: The fantastic combinations of
John Conway's new solitaire game "life". Scientific American 223 (1971)
120-123
|
Benutzer: gast
Besitzer: schwill Zuletzt geändert am:
|
|
|