naja, das struct speichert in diesem Fall zwei integer-Werte. Somit bewegt sich das Objekt in einem Imaginären Raum. Dabei kann das Objekt 8 Schritte von seinem Startpunkt aus nach links gehen und 8 Schritte wieder zurück.
Der Grund hierfür ist, das Objekt kann auch außerhalb der Spielfelds erstellt werden. Das ist dann der Fall wenn drei Steine erstellt werden. Das erst in an Position X = 1, dass zweit an Position X = 0 und das dritte an Position X = -1.
Somit muss sich das Objekt keine Gedanken machen ob es außerhalb des Spielfelds ist und u.U. außerhalb eines Array-Feld.
Das Objekt wird an das Spielfeld übergeben. Das Spielfeld ist verantwortlich für die korrekte Positionierung des Objekts. Wenn sich die Position außerhalb des Spielfelds befindet wird es auch nicht "gezeichnet" und somit nicht in das Array-Feld geschrieben.
Das war die Idee dahinter.