Conways spiel des lebens diagonalproblem

Guten Tag,

habe soeben dieses spiel nach programmiert und stehe vor folgendem problem:
ich habe den rand zuerst mit festen werten initialisiert (guards) und wollte nun die spielfläche unendlich groß machen, sprich:
der rechtre rand beeinflusst den linken, bzw der oberen den unteren.

wie löst man nun das problem wenn es um diagonalbewegungen geht,denn nach meiner art und weise, werden diagonalgleiter nicht korrekt verarbeitet. es scheint ziemlich kniffelig, denn es müsste unterschieden werden welche bewegung das objekt vorher gemacht hat?!?


…X|
…|
…|

wenn ein objekt wie oben nun einfach in der ecke schlummert, also kein gleiter ist, würde es in meinem fall das feld links oben und rechts unten beeinflussen. ist das so korrekt?

kommt dieses Objekt nun angeflogen von links unten und tritt nun rechts oben in die ecke ein, sollte es auch links unten wieder austreten.

soweit meine therorie.was denkt ihr? wie gehe ich die sache am besten an?danke im vorraus!

Moin, wanderameise,

bei Conway hat kein Element eine Marschrichtung, sondern es werden Elemente geboren, sie überleben oder sie sterben. Damit ist die von Dir gewünschte Bewegung so nicht machbar.

Lass den Taumler mal losrennen und beobachte, was er tut. Taucht er nicht wieder auf, so vergrößere das Spielfeld um 1 in der Waagrechten und dann nochmal in der Senkrechten, vielleicht folgt er dann Deinem Wunsch.

Gruß Ralf

ja verstehe schon das kein element sich bewegt, aber durch das sterben und neu geboren werden, sehen manche objekte aus wie gleiter. und um die geht es.
deine idee verstehe ich nicht ganz, erklär sie mal bitte etwas genauer!

Moin, wanderameise,

deine idee verstehe ich nicht ganz, erklär sie mal bitte etwas
genauer!

reden wir hier von Theorie oder von der Praxis?

Eine endlose Fläche entsteht, indem die rechte Kante mit der linken und die untere mit der oberen vernäht wird. Wenn das richtig gemacht wird, sollte Deine Frage sich erledigt haben. Also vergiss meinen Einwand mit der Vergrößerung der Fläche, das war aus der Hüfte geschossen.

Gruß Ralf

wie merkst du dir denn, welche Zellen leben?
ich hab das ganze damals in nem zweidimensionalen Array gespeichert und für jede Zelle bei Regelanwendung die umliegenden Zellen betrachtet
um dann über den Rand hinaus zu prüfen, muss man dann nur die Arraygrenzen mit einbeziehen

Moin, Hachi,

wie merkst du dir denn, welche Zellen leben?
ich hab das ganze damals in nem zweidimensionalen Array
gespeichert

zweidimensional muss ja sein, sonst bewegt sich nichts :smile: Für die Entscheidung habe ich ein zweites Array benutzt und am Ende das erste durch das zweite ersetzt.

um dann über den Rand hinaus zu prüfen, muss man dann nur die
Arraygrenzen mit einbeziehen

Da verstehe ich nur Bahnhof. Wenn eine Grenze überschritten wurde, habe ich mit Zeigern die Ränder „zusammengenäht“.

Gruß Ralf

um dann über den Rand hinaus zu prüfen, muss man dann nur die
Arraygrenzen mit einbeziehen

Da verstehe ich nur Bahnhof. Wenn eine Grenze überschritten
wurde, habe ich mit Zeigern die Ränder „zusammengenäht“.

also wenn das Feld zB 7x5 ist und die Zelle[6][2] überprüft werden soll, bin ich hingegangen und hab den Index links und rechts bestimmt
diese sind primär 5 und 7, da 7 aber über der Arraygrenze liegt, ersetze ich sie durch 0 und überprüfe dann Zelle[5][?] und Zelle[0][?]
das gleiche nach oben und unten