Methoden Game of Life , Spiel des Lebens programmieren!

davees

Neues Mitglied
Hallo Leute,
ich bin gerade dabei Java zu lernen. Dabei benötige ich für eine Studienaufgabe von euch einen Ansatz.
Habe mich schon durch das ganze Forum gesucht, leider versteh ich immernoch nicht wie ich anfängen könnte.

Ihr könnt mir bestimmt helfen.
Die Aufgabenstellung lautet:

Game of Life,

die Spielwelt besteht aus einer Matrix von Zellen, die entweder leben
oder tot sind. Jede Zelle hat 8 Nachbarn. Randzellen haben die Zellen des gegenüberliegenden
Randes als Nachbarn. Eine solche Matrix bezeichnet man als Population.
Aus der momentanen Zellenpopulation kann man die Population in der nächsten
Generation durch folgende Regeln berechnen:

  • Hatte eine tote Zelle genau 3 lebende Nachbarn, erwacht Sie zum Leben.
  • Hat eine lebende Zelle 2 oder 3 lebende Nachbarn, bleibt sie am Leben.
  • Alle anderen Zellen sterben.


Eine Population wird durch eine n x n Matrix mit Elementen vom Typ int dargestellt.
Eine 1 symbolisiert eine lebende Zelle, eine 0 eine tote Zelle.

Schreiben Sie eine Methode
public static int[][] gameOfLife (int[][] population)

Diese Methode berechnet aus einer Population, die durch die Eingabe gegeben ist,
die nächste Generation der Population und gibt sie als Return-Wert zurück. Implementieren
Sie für die manuelle Abnahme auch Methoden, um mehrere Generationen
von Populationen zu berechnen und eine Population auszugeben. Probieren Sie eine
Reihe von Initialpopulationen (in Form von zweidimensionalen Arrays) aus und
verschiedene Anzahlen von Generationen. In den folgenden Beispielen für Initialpopulationen
sind die Nullen nicht dargestellt.

Ein Ansatz mit einem kleinen Beispiel wäre sehr hilfreich.

Danke
 

JCODA

Top Contributor
Meistens ist es so, dass man immerhin eine klitze kleine kleinigkeit selbst beitragen kann, und wir helfen können darauf aufzubauen, ... aber einfach so dir die Lösung hinschreiben sollte eigentlich keiner machen. Möchtest du hingegen genau das, solltest du vielleicht eher in der Jobbörse ein Thread eröffnen,
 

davees

Neues Mitglied
Hey JCODA.

Ich will den ganzen Code nicht aufgeschrieben haben. Mir würde reichen, wenn mir einer kürz erklären würde, wie man so was angeht. Ich scheiter bei der ersten Methode und weiß Nicht, wie ich das doppelte Array übergebe. Tut mir Leid, aber jeder beginnt mal vom Anfang. Leider wird das Tempo bei uns recht schnell angezogen.
Vielleicht kann man mir einen Ansatz geben.
Danke.
 

Saheeda

Top Contributor
@davees

Die Parameterübergabe funktioniert immer gleich, vollkommen egal, ob es ein int, double, float, ein-/mehrdimensionales Array oder ein Objekt ist:

Java:
public static void main(String[] args) {

		String[][] myarray = new String[8][8];

		DoSomething(myarray);
	}

	public static void DoSomething(String[][] arrayname) {
	}

Fang doch erstmal an zu überlegen, was du eigentlich brauchst. Schalte den Rechner aus, schnapp dir Papier und Stift und male/schreib los:
Du hast eine Matrix (ein Gitternetz), das 8x8 Felder groß ist. Dort drin verteilst du zufällig einige lebendige Zellen.
Was würde bei einem Generationenwechsel passieren?
Woher weißt du, welche Zellen in der nächsten Generation noch leben und welche tot sind?
Spiel das gedanklich Schritt für Schritt durch. Du musst selbst erstmal komplett verstehen, wie das Spiel funktioniert, bevor du auch nur eine Zeile Code schreiben kannst.

Danach erst kannst du dir Gedanken machen, welche Klassen/Objekte sinnvoll sind und welche Variablen/Properties und Methoden diese benötigen.
 

Neue Themen


Oben