Thema: Conway's Game of Life
-
03.10.2012, 16:26 #1
- Registriert seit
- 19.11.2011
- Beiträge
- 496
Thanked 412 Times in 268 PostsConway's Game of Life
Hallo,
damit dieses Subforum auch mal genutzt wird, hier eine Aufgabe: Es soll Conway's Game of Life implementiert werden.
Dazu ersteinmal grundlegende Informationen aus dem Wikipedia-Artikel:
Das Spiel des Lebens von John Horton Conway ist ein System, das auf einem zweidimensionalen zelluären Automaten basiert.
Das Spielfeld ist in Spalten und Zeilen unterteilt. Jedes Quadrat ist eine Zelle, die zwei Zustände haben kann. Entweder lebt sie, oder sie ist tot. Jede Zelle hat acht Nachbarn (oben, unten, links, rechts und die diagonal angrenzenden Zellen) und diese muss jede Zelle auch kennen, denn die Folgegeneration wird unter Beachtung nachfolgender Regeln erzeugt:
- Eine tote Zelle mit genau drei lebenden Nachbarn wird in der Folgegeneration leben
- Lebende Zellen mit weniger als zwei lebenden Nachbarn sterben in der nächsten Generation
- Lebende Zellen mit zwei oder drei lebenden Nachbarn bleiben auch in der Folgegeneration am leben
- Lebende Zellen mtt mehr als drei Nachbarn sterben in der Folgegeneration
Aufgaben
Anfänger: Schreibe eine Klasse für das Spiel des Lebens. Als eine kleine Orientierung sei ein unvollständiges Interface gegeben, das es zu implementieren gilt. Außerdem soll eine beliebige Anfangsgeneration manuell erstellt werden und die ersten 5 Generationen auf der Konsole ausgegeben werden.
Code:public interface GameOfLifeModel { // Anzahl Zeilen des Spielfeldes public static final int ROWS = 60; // Anzahl Spalten des Spielfeldes public static final int COLS = 80; // Kantenlänge eines Quadrates (Zelle) public static final int CELL_SIZE = 10; // Berechnet die Folgegeneration und speichert diese. public void nextGeneration(); // Gibt die aktuelle Generation zurück. // das zweidimensionale boolean-Array ist eine mögliche Form // der internen Repräsentation. public boolean[][] getGeneration(); }
- Je größer das Spielfeld, desto besser. Es gibt eine Möglichkeit, ein unendliches Spielfeld zu simulieren, in dem man es torus-förmig macht.
- Erstelle ein GUI, das folgende Funktionalitäten besitzt:
- Der Benutzer kann die Generation "zeichnen"
- Es gibt Buttons für die Berechnung und Anzeige der Folgegeneration und zum Zurücksetzen (alle Zellen sind tot)
- Optional: der Benutzer kann eine Animation starten und die Geschwindigkeit einstellen. Die "Animation" soll dann automatisch die Folgegeneration berechnen und anzeigen, bis der Benutzer die Animation stoppt.
Wer auch die fortgeschrittenen Aufgaben löst, muss natürlich die Lösung der Konsolenausgabe nicht posten.
Meine Lösung:
Spoiler:Java7/JavaFx
Ähnliche Themen
-
Stanfour - Life without you
Von BMG im Forum Musik ♫Antworten: 3Letzter Beitrag: 31.10.2012, 06:28 -
Kim Dotcom - Live my Life
Von Bossgen im Forum Musik ♫Antworten: 4Letzter Beitrag: 28.09.2012, 15:53 -
Facebook Time Life
Von helfen im Forum Internet und TechnikAntworten: 13Letzter Beitrag: 30.01.2012, 13:34 -
Facebook Time Life
Von helfen im Forum Internet und TechnikAntworten: 3Letzter Beitrag: 17.12.2011, 22:07
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.