C++ array ringförmig
-
Hallo,
ich schreibe gerade aus Spaß meine eigene Version von Conways Spiel des Lebens.
Ich bin fast damit fertig, aber ich würde es gerne so gestalten dass ein Objekt was an den Rand fliegt am entgegengesetzten Ende wieder da ist.Ich wollte das eigentlich so lösen:
if (cell.Position().y + 1 < 60 && field_[cell.Position().x ][ cell.Position().y + 1].IsAlive()) ++neighbours; else if (cell.Position().y + 1 > 60 && field_[cell.Position().x ][0].IsAlive()) ++neighbours;Also auf Deutsch das beim Zählen der Nachbarn implementieren. Dass ist jedoch wirkungslos und Google half mir auch nicht. Ich hab sogar schon andere Versionen angeschaut, aber die verwenden dieses Feature nicht.
Deshalb würde ich mich über jegliche Lösungsvorschläge freuen!
-
Ich schlage vor:
http://en.wikipedia.org/wiki/Modulo_operation
-
SeppJ schrieb:
Ich schlage vor:
http://en.wikipedia.org/wiki/Modulo_operation
Was hat das mit einem Array zu tun? Das Ding ist fixed sized
(T foo[const][const]), also müsste das mit konditionalen Statements doch zu lösen sein? Verstehe ich hier irgendwas nicht?
-
0 mod 5 = 0
1 mod 5 = 1
2 mod 5 = 2
3 mod 5 = 3
4 mod 5 = 4
5 mod 5 = 0
6 mod 5 = 1
7 mod 5 = 2
8 mod 5 = 3
9 mod 5 = 4Fällt dir was auf?
-
IrgendeinName schrieb:
Verstehe ich hier irgendwas nicht?
Ja. Rechner mal 61 % 60 aus.
-
Mein Hauptproblem war eigentlich schlechtes Funktionsdesign, hab deshalb die Übersicht verloren. Außerdem sollte ich mir ein paar Kapitel in einem anderen Buch ansehen, da meins schlecht war. Das Problem existiert zwar noch, ist aber nur durch besseres Funktionsdesign lösbar und deshalb nicht forum-geeignet.
Trotzdem danke an alle!