4Gewinnt problem :(
Übersicht

![]() |
ToeBBetreff: 4Gewinnt problem :( |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab heute morgen(so um 11/12...) mit 4Geinnt angefangen, und hab schon das erste problem:
Also...Die erste reihe krig ich voller Steine; aber ich krig die Zweite reihe nich hin: Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() Type stone Field x,y,speed End Type Global s.stone Function Feld() Color 0,0,255 Rect 100,100,600,600 Color 0,0,0 For x = 105 To 700 Step 90 For y = 105 To 700 Step 90 Oval x,y,50,50 Next Next End Function my = 50 mx = 105 Repeat If KeyHit(203) Then mx = mx - 90 If KeyHit(205) Then mx = mx + 90 If mx < 105 Then mx = 105 If mx > 650 Then mx = 650 Color 255,255,255 Oval mx,50,50,50 Feld If KeyHit(57) Then s.stone = New stone s\x = mx s\y = 50 s\speed = 10 EndIf For s.stone = Each stone Color 255,255,255 Oval s\x,s\y,50,50 s\speed = s\speed + 2 s\y = s\y + s\speed If s\y > 555 Then s\y = 555 EndIf Next Flip Cls Until KeyHit(1) End Kann mia jemand helfen? thx schonmal... mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst das doch alles mit Dims machen (lol, da lernt man mühsam Types und dann sagt einer Dims sind besser). In dem Fall sind die Types unnötig.
Du machst einfach ein Dimso wie eine Tile-Map: Code: [AUSKLAPPEN] Const frei = 0 Const rot_belegt = 1 Const blau_belegt = 2 dim feld(zeilen,spalten) if keyhit(57) then for i = zeilen to 1 if feld(i,aktuelle_spalte) <> frei then if player_eins_am_zug then feld(i - 1,aktuelle_spalte) = rot_belegt else feld(i - 1,aktuelle_spalte) = blau_belegt endif exit endif next Also ganz "unten" ist die letzte Zeile in deinem Spiel die sechste zeile. Und wenn die belegt is, dann belegt er einfach das Feld obendrüber. Grüße Smokie |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
4 gewinnt läuft in einem 2d feld (... meistens), dessen grösse vorher bestimmt ist (also z.b 7x8), also würde ich dir von einem Type abraten in dieser situation!
Nimm einen Array... so in der art: Code: [AUSKLAPPEN] Dim Feld(6,7)
while not keyhit(1) ;feld zeichnen for x=0 to 6 for y=0 to 7 rect x*50+10,y*50+10,50,50,0 if feld(x,y)=1 then oval x*50+10,y*50+10,50,50 ;du if feld(x,y)=2 then rect x*50+10,y*50+10,50,50 ;gegner ;ginge auch mit farben oder so next next ;stein setzen for x=0 to 6 if mousehit(1) then if rectsoverlap(mousex(),mousey(),1,1,x*50+10,0,50,graphicsheight()) then for y=7 to 0 step -1 if feld(x,y)=0 then feld(x,y)=1 : exit next endif endif next ;dann noch KI... flip 0 Wend : end [edit] der olle smokie war schneller ![]() |
||
Diese Signatur ist leer. |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey danke euch "allen" ! | ||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lol, ja ich war schneller, aber dafür hast du ihm ein ausführlicheres Beispiel gegeben. Ich wollt ihm halt net alles vorweg nehmen. Zu deinem Beispiel:
Ich würd das mousehit(1) vor die schleife mit dem x setzen, weil du die maustaste im richtigen moment drücken müsstest, damit ein stein gesetzt wird. Außerdem ist es schneller wenn, man erst prüft wenn auch wirklich die Maustaste gedrückt wurde ![]() @Crack93 Ich hab noch einen Fehler in deinem Code gefunden: in Zeile 45 muss das Endif weg, wenn du die Befehle in eine Zeile schreibst. |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich muss sowieso jetzt alles ändern, wenn ich es mit Dim ...() mache ![]() aba jetzt klappt nicht der Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() Dim Feld(6,7) Repeat Color 0,0,255 Rect 100,100,600,600 For x = 1 To 6 If MouseHit(1) Then If RectsOverlap(MouseX(),MouseY(),1,1,x+90+50,0,50,50) Then For y = 1 To 7 Step -1 If Feld(x,y)= 0 Then Feld(x,y) = 1:Exit Next EndIf EndIf Next For x = 0 To 6 For y = 0 To 7 Color 0,0,0 Oval x*90+50,y*90+10,50,50 Color 255,0,0 If Feld(x,y) = 1 Then Oval x*90+50,y+90+10,50,50 If Feld(x,y) = 2 Then Rect x*90+50,y*50+10,50,50 Next Next Color 255,255,255 Flip 0 Cls Until KeyHit(1) End Warum?? |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
sry schonmal wegen Doppelposts, aber mia antwortet keiner ![]() Code: [AUSKLAPPEN] Graphics 640,480 Dim Feld(7,6) While Not KeyHit(1) ;feld zeichnen For x = 0 To 7 For y = 0 To 6 Color 255,255,255 Rect x*50+10,y*50+10,50,50,0 If feld(x,y)=1 Then Color 255,0,0:Oval x*50+10,y*50+10,50,50;du If feld(x,y)=2 Then Color 0,0,255:Rect x*50+10,y*50+10,50,50;gegner ;ginge auch mit farben oder so Next Next For x = 0 To 7 If MouseHit(1) Then If RectsOverlap(MouseX(),MouseY(),1,1,x*50+10,0,50,GraphicsHeight()) Then For y = 6 To 0 Step -1 If feld(x,y)=0 Then feld(x,y) = 0:Exit Next EndIf EndIf Next ;dann noch KI... Flip 0 Wend:End Der code funzt bei mia nich-> warum??? zur info: Ich habe den Text abgeschrieben, und 1000* durchgeguckt, aber ich find den Fehler nich ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
also da braucht man nicht lang suchen.
Du machst eine For-Next Schleife mit 8 (0 bis 7) Durchgängen, hast in deinem Array aber nur 7 Elemente! (Gilt natürlich auch für y) |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
darth gamer hat Folgendes geschrieben: Code: [AUSKLAPPEN] Dim Feld(6,7)
while not keyhit(1) ;feld zeichnen for x=0 to 6 for y=0 to 7 rect x*50+10,y*50+10,50,50,0 if feld(x,y)=1 then oval x*50+10,y*50+10,50,50 ;du if feld(x,y)=2 then rect x*50+10,y*50+10,50,50 ;gegner ;ginge auch mit farben oder so next next ;stein setzen for x=0 to 6 if mousehit(1) then if rectsoverlap(mousex(),mousey(),1,1,x*50+10,0,50,graphicsheight()) then for y=7 to 0 step -1 if feld(x,y)=0 then feld(x,y)=1 : exit next endif endif next ;dann noch KI... flip 0 Wend : end Bei ihm hats ja auch gefunzt ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Bei ihm hats ja auch gefunzt
Schonmal seine Version probiert? Funzen ist was anderes! Nur muss ich zugeben, dass es doch nicht an der Schleife liegen dürfte... |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja hab ich ! aber alz ich das appgetippt habe, ging es nich mehr... | ||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab doch gesagt das liegt am Mousehit, du musst das vor die Schleifen setzen. Du müsstest genau im Richtigen Moment die Maus drücken, wärend er genau an der Position an der schleife ist, wo geprüft wird. Außerdem sollst du den Code net abtippen sondern ihn verstehen. WEnn du den dann kannst du auch gleich strg + c benutzen. Es muss so heißen:
Code: [AUSKLAPPEN] if mousehit(1) then for x=0 to 6 if rectsoverlap(mousex(),mousey(),1,1,x*50+10,0,50,graphicsheight()) then for y=7 to 0 step -1 if feld(x,y)=0 then feld(x,y)=1 : exit next endif next endif Außerdem wegen dem Doppelpost, warte lieber ma 2 Tage bis dir einer nicht antwortet. Du hast ca eine Stunde gewartet und du kannst net verlangen, dass wir den ganzen tag nur am PC hocken und im BB-Forum sind. GRüße Smokie |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok,sorry. Aus fehlern lernt man ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group