Problem mit meiner Map?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bruce85

Betreff: Problem mit meiner Map?

BeitragMi, Sep 06, 2006 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo, also ich arbeite grad an ein Sokoban, wo man Kisten verschiebt, das erste level funktioniert soweit ganz gut, aber wie berechne ich wo die kisten hin sollen?

hier mal die daten von der map:

Code: [AUSKLAPPEN]
Data 3,3,3,3,3,3,3,3,3,3
Data 3,1,1,3,1,1,1,1,1,3
Data 3,1,1,1,1,2,1,1,1,3
Data 3,1,2,3,1,1,1,3,1,3
Data 3,1,1,1,2,3,3,1,1,3
Data 3,3,3,3,1,2,1,1,1,3
Data 3,0,0,3,1,1,1,2,1,3
Data 3,0,0,1,1,2,1,1,1,3
Data 3,0,0,1,1,1,1,1,1,3
Data 3,3,3,3,3,3,3,3,3,3


ich möchte einfach wenn in der Map keine 0 mehr vorhanden ist, das die Function dann entlassen wird.
ich habs mal so Probiert:

Code: [AUSKLAPPEN]
Function Check()

  Return 1

  For F_y=0 To 9
    For F_x=0 To 9
      If Not Spielfeld(F_x,F_y) = 0 Then
        Return 0
      EndIf
    Next
  Next

End Function


aber das funktioniert net so, wisst ihr vieleicht wie ich das machen kann?
Danke euch schonmal.

Gruss Andreas

Cardonic

BeitragMi, Sep 06, 2006 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function Check()

For F_y=0 To 9
For F_x=0 To 9
If Not Spielfeld(F_x,F_y) = 0 Then
Return 0
EndIf
Next
Next

Return 1

End Function

So sollte es gehen.
Wenn als erstes ein Return in einer Funktion steht, dann verlässt BB die Funktion schon dort.

mfg Cardonic
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.
 

bruce85

BeitragMi, Sep 06, 2006 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir, es geht trotzdem net, auch wenn keine 0 mehr dabei ist, wird trotzdem das gleiche ausgeführt:

Code: [AUSKLAPPEN]
If Check() Then
  Color 128,0,0
  Text 200,200,"Level geschaft!"
Else
  Color 128,0,0
  Text 200,200,"Level nicht geschaft!"
EndIf


es erscheint immer die Meldung "Level nicht geschaft!"

gibt es vieleicht eine andere Methode wie ich überprüfen kann ob Feld 0 noch gibts?

Gruss Andreas

DerHase

BeitragDo, Sep 07, 2006 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Funktion macht auch das: Wenn es ein Feld gibt, welches nicht 0 ist wird die Funktion den Wert 0 zurück geben.
Wie ich sehe gibt es immer Felder die nicht 0 sind, deshalb wird auch immer der Wert 0 zurückgegeben.
Du brauchst eine Funktion die 0 zurückgibt, wenn ein Feld den Wert 0 hat und ansonsten eine 1.
IMHO.

Hummelpups

BeitragDo, Sep 07, 2006 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Och Der Hase, lieb gemeint aber er fragt doch sowieso gleich nach
dem Code. Um den vorzubeugen.

Code: [AUSKLAPPEN]
Function Check()
   Local F_x:Int
   Local F_y:Int
   
   For F_x=0 To 9
   For F_y=0 To 9
      If Spielfeld(F_x,F_y)=0 Then
         Return 0
      EndIf
   Next
   Next
    Return 1
End Function


Unglaublich aber wahr, um die Übersichtlichkeit zu erhöhen und
diesen Code gebräuchlichen Standards anzupassen fängt man mit immer
mit X an!!!
(AbdR)

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

DerHase

BeitragDo, Sep 07, 2006 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte auch erst den Code schreiben, aber ich dacht mir, sowas sollte gar nicht erst zur gewohnheit werde Rolling Eyes
 

bruce85

BeitragDo, Sep 07, 2006 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir IMurDOOM
man sollte aber mit Y anfangen, ansonsten stimmt die ganze map nicht, ich habs schon x mal ausprobiert mit x als erstes.
Naja, ich werds dann mal ausprobieren Very Happy

Gruss Andreas

Hummelpups

BeitragDo, Sep 07, 2006 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Von Danke hab ich den ganzen keller voll, ich will Bares Very Happy

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group