Rekursive Suche in einem "Dim"-Feld

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Gast

Betreff: Rekursive Suche in einem "Dim"-Feld

BeitragDi, Jun 17, 2008 17:50
Antworten mit Zitat
Ich hoffe mal das es hier richtig ist, und nicht in den B2D Bereich.

Ich programmieren ein KlickerKlacker Klon (So heisst das zumindest auf RTL.de, vll. Kenn ja jemand ChaosBreaker von D2006, gleiches Spielprinziep). Für das Markieren habe ich gedacht, ich mache ein Function Test, die sich selber aufruft.
Also so: Code: [AUSKLAPPEN]

Function Test(X,Y,Z)
; Nach Oben
If Map(X,Y-1,0) = Z Then Map(X,Y-1,1) = 1:Test(X,Y-1,Z)
; Nach Links
If Map(X-1,Y,0) = Z Then Map(X-1,Y,1) = 1:Test(X-1,Y,Z)
; Nach Unten
If Map(X,Y+1,0) = Z Then Map(X,Y+1,1) = 1:Test(X,Y+1,Z)
; Nach Rechts
If Map(X+1,Y,0) = Z Then Map(X+1,Y,1) = 1:Test(X+1,Y,Z)
EndIf
End Function

Schön und gut, nur leider Beendet sich das Programm ohne Fehlermeldung.
Falls ich die letzten beiden ausklammere geht es:
Code: [AUSKLAPPEN]

Function Test(X,Y,Z)
; Nach Oben
If Map(X,Y-1,0) = Z Then Map(X,Y-1,1) = 1:Test(X,Y-1,Z)
; Nach Links
If Map(X-1,Y,0) = Z Then Map(X-1,Y,1) = 1:Test(X-1,Y,Z)
; Nach Unten
If Map(X,Y+1,0) = Z Then Map(X,Y+1,1) = 1;:Test(X,Y+1,Z)
; Nach Rechts
If Map(X+1,Y,0) = Z Then Map(X+1,Y,1) = 1;:Test(X+1,Y,Z)
EndIf
End Function

Woran liegt das? PS: Randüberprüfung wird noch gemacht.

EDIT
Es Lag daran, dass BB es hätte unendlich oft machen müssen.
Es hätte das Feld unten Überprüft, festgestellt, dass es gelch ist, also: Testen. Das hätte dazu geführt, dass Test Das Ober Feld geprüft hätte, und so weiter. Da hat BB sich einfach beendet.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group