variablen problem feldverschiebung
Übersicht

xverbatimbasicBetreff: variablen problem feldverschiebung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
würde mich über hilfe echt freuen ![]() folgendes Problem: 1) ich habe ein feldarray von der Größe 10*10 -->heißt feld(10,10), dieses wird mit Werten zufällig von 1 bis 3 gefüllt. For x=1 To 10 For y=1 To 10 feld(x,y)=ZUFALLSWERT(1 bis 3) Next Next 2) jetzt habe ich eine Routine, in der ich an irgendeiner Position des Arrays, ein Feld auf 0 setze. denke, bis hierhin ist es verständlich. jetzt möchte ich, das wenn ich z.B. feld(1,5) auf 0 gesetzt habe, alle felder, genauer die felder feld(1,10) bis feld(1,1) um eins nach unten gesetzt werden also auf feld(1,10) soll der inhalt von feld(1,9) auf feld(1,9) soll der inhalt von feld(1,8) usw. aber nur, wenn auch eine null noch da ist usw. Es soll also eine Routine sein, die einfach die gesetzen Werte solange nach unten verschiebt, bis keine 0 mehr da ist. zum besseren Verständnis, es soll so eine art tetris werden, habe 3 steine bzw. eine senkrechte reihe mit steinen und diese sollen einfach nach unten fallen, wenn ein zwischenraum ist (wert 0) ... habe es so versucht aber ohne erfolg For y=1 To 10 If feld(1,y )=0 Then feld(1,10-y)=feld(1,y-9) Next wäre über hilfe sehr dankbar |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, das machst du am Besten von hinten:
Code: [AUSKLAPPEN] For y=10 To 1 step -1 If feld(1,y)=0 Then feld(1,y)=feld(1,y-1) Next Hoffe habe das richtig verstanden... |
||
xverbatimbasicBetreff: geht leider nicht :-((( |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi,
erstmal danke, nur geht das so nicht, unten habe ich mal ein teil des codes ! ich habe ein feld 10*10 kugeln, in unterem beispiel soll eigentlich nur gehen, das wenn ich ein feld(eine kugel) in der ersten reihe lösche, alle anderen felder(kugeln in der reihe) nach unten wandern.... hat jemand eine idee ? gruß xvb Code: [AUSKLAPPEN] Global steingelb,steinrot,steingrün,figur,dummy,hintergrund,fntArial,schuss
Global mausx,mausy Dim steinex(10), steiney(10) Dim feld(10,10) ; setze 10*10 Feld mit 0 also leer For x=1 To 10 For y=1 To 10 feld(x,y)=Rand(2,3) Next Next lade_grafiken() init_grafik() ; HAUPTPROGRAMM Repeat Cls DrawImage hintergrund,10, 0 setze_steine() DrawImage steinrot,MouseX(),MouseY() If MouseHit(2)=True Then pruefe_steine(); klick rechts prüfe erstmal reihe 1 If MouseHit(1)=True Then feld(MouseX()/32,MouseY()/32)=0; LÖSCHE FELD Flip Until KeyHit(28) End ; ERSTAL NUR REIHE EINS PRÜFEN Function pruefe_steine() y=MouseY()/32 For y=10 To 1 Step -1 If feld(1,y)=0 Then feld(1,y)=feld(1,y-1) Next End Function Function setze_steine() For y=1 To 10 For x=1 To 10 If feld(x,y)=1 Then DrawImage steinrot,x*32,y*32 If feld(x,y)=2 Then DrawImage steingrün,x*32,y*32 If feld(x,y)=3 Then DrawImage steingelb,x*32,y*32 Next Next End Function ; Grafik neuzeichnen ;------------------------------------- Function aktualisiere_grafik() Color 255,115,25 SetFont fntArial MaskImage figur,0,0,0 DrawImage figur, mausx /32*32 , mausy/32*32 End Function ; Bereite Grafikausgabe vor INIT() ;------------------------------------- Function init_grafik() Graphics 1024,768,32,3 SetBuffer BackBuffer() fntArial=LoadFont("Arial",24,False,False,False) ResizeImage hintergrund,600,600 End Function |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry, ich glaube so sollte es gehen....:
Zitat: For y=9 To 1 Step -1 If feld(1,y)=0 Then feld(1,y)=feld(1,y+1) Next |
||
xverbatimbasicBetreff: geht auch nicht :-( |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] For y=9 To 1 Step -1
If feld(1,y)=0 Then feld(1,y)=feld(1,y+1):feld(1,2)=Rand(1,3) Next nochmal hi, nein, es geht auch nicht , wenn ich als test auf feld(1,2)=irgendwas setze, geht der inhalt nicht runter .... ;-((( wo ist denn bloss der fehler ??? help |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] For x=1 To 10 For y=9 To 1 Step -1 If feld(1,y)=0 Then feld(1,y)=feld(1,y+1):feld(1,y+1)=0 Next Next unschön, geht aber... |
||
xverbatimbasicBetreff: Danke simi :-) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() läuft jetzt 1a Gruß xvb |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group