Ich muss alle Zellen eines Gitters überprüfen, die mein Spielcharakter erreichen kann. Um dies zu tun, muss ich von der Position des Charakters ausgehen und dann den Bereich überfluten, um alle erreichbaren Zellen zu finden (z. B. Zellen, die nicht durch eine Wand blockiert sind).Algorithmus zum "Überfluten" eines Bereichs
In dieser Zeichnung ist der Player P
und die Wände, die den Player blockieren, werden durch X
dargestellt. Ich muss alle Zellen in dem Bereich untersuchen, in dem sich der Spieler befindet.
X X X X X X X X
X X X X
X P X X X X
X X X X
X X X X X X X
X X X X X X X X
Gibt es einen netten iterativen Algorithmus, dies zu tun? Momentan mache ich das rekursiv.
@sch Nichts. Ich möchte nur wissen, ob es eine iterative Alternative gibt. –
Ich denke, die rekursive Lösung ist die beste. –
Es gibt eine Reihe von Algorithmen auf Wikipedia, sicherlich wird man für Sie arbeiten: http://en.wikipedia.org/wiki/Flood_fill –