Java Umsetzung "Game of Life" bzw. Räuber-Beute-Simulation

mythbu

Cadet 2nd Year
Registriert
Mai 2011
Beiträge
24
Hallo,

ich habe eine Frage zur Umsetzung einer Räuber-Beute-Simulation (Hasen und Füchse), was ja dem Game of Life sehr ähnlich ist. Die Umsetzung (2D-Array, ...) ist mir ziemlich klar; ich habe schon erfolgreich das Game of Life implementiert.

Nun komme ich aber ins Grübeln bei den Regeln, z.B. wenn ein Fuchs die Regel hat: "alle umliegenden Hasen zu verzehren" und "falls er keine Nahrung gefunden hat bewegt er sich auf ein Nachbarfeld". Wenn ich nun durch mein 2D-Array laufe, kommen ja manche Füchse voher dran als andere (bedingt durch die Struktur der zwei verschachtelten Schleifen). Dann könnte ich ja schon Änderungen vornehmen, die zu Seiteneffekten führen wenn ich zu den späteren Füchsen (z.B. nächste Zeile) komme. Bei meiner Implementierung des Game of Life habe ich einfach zu Beginn eines solchen Aktualisierungschrittes eine zweite leere Matrix angelegt und darein die Änderungen (die aufgrund der aktuellen Matrix sich ergaben) geschrieben und zum Schluss einfach die bisherige durch die neue ersetzt. Aber das klappt ja hier auch nicht gut, oder?

Ich habe zwar versucht Source-Code existierender Implementationen zu verstehen jedoch nicht viel hiervon gesehen.

Habt Ihr eine Idee, wie ich diese Problematik lösen kann?

Viele Grüße,
mythbu
 
Ich habe das Game of Life (in C++) auch mit 2 Feldern programmiert. Eines war sozusagen das Nachschlagewerk und das andere Array das berechnete was angezeigt wurde. Wieso sollte das bei deiner Simulation nicht klappen? Wo genau liegen die Probleme? Es sind doch genau dieselben wie beim Game of Life nur mit anderen Regeln?

LG Tigerass
 
falls er keine Nahrung gefunden hat bewegt er sich auf ein Nachbarfeld
Das ist eine nicht-eindeutige Regel. Wenn du die deterministisch machst, hebt sich wahrscheinlich vieles auf.
Wie wär's mit
1. Hasen essen => fertig
2. Nachbarfeld vormerken (Feld[x][y]+=1)
3. Kollision mit anderem Fuchs (Feld[x][y]>1)? => nix tun => fertig
4. Auf anderes Feld hüpfen

Game of Life ist ja eindeutig, was das angeht.
 
Hallo,

danke für die Hinweise - ich habe es jetzt lösen können: undzwar mit den Regeln von Hancock und dem Nachschlagearray klappt das super :D

Danke!
mythbu
 
Zurück
Oben