Wie viele felder?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: Wie viele felder?

BeitragSo, Feb 11, 2007 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab im moment folgendes programm :
Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Snake Multiplayer"
fx = 50
fy = 50
Dim feld(fx,fy)
x1 = fx-10:y1 = fy-10
x2 = 10:y2 = 10

Repeat
ClsColor 50,60,70:Cls
Color 175,175,175
For xx = 1 To fx:Line xx*10,0,xx*10,fy*10:Next
For yy = 1 To fy:Line 0,yy*10,fx*10,yy*10:Next
If KeyHit(200) Then y1 = y1 - 1
If KeyHit(208) Then y1 = y1 + 1
If KeyHit(203) Then x1 = x1 - 1
If KeyHit(205) Then x1 = x1 + 1
If x1 > fx-1 Then x1 = 0
If x1 < 0  Then x1 = fx-1
If y1 > fy-1 Then y1 = 0
If y1 < 0  Then y1 = fy-1
If KeyHit(17) Then y2 = y2 - 1
If KeyHit(31) Then y2 = y2 + 1
If KeyHit(30) Then x2 = x2 - 1
If KeyHit(32) Then x2 = x2 + 1
If x2 > fx-1 Then x2 = 0
If x2 < 0  Then x2 = fx-1
If y2 > fy-1 Then y2 = 0
If y2 < 0  Then y2 = fy-1

feld(x1,y1) = 1
feld(x2,y2) = 2
For xx = 1 To fx
For yy = 1 To fy
If feld(xx,yy) = 1 Then Color 255,0,0:Rect xx*10+2,yy*10+2,7,7
If feld(xx,yy) = 2 Then Color 0,0,255:Rect xx*10+2,yy*10+2,7,7
Next
Next
For xx = 1 To fx
For yy = 1 To fy
If feld(xx,yy) = 1 Then Color 255,0,0:Text 600,10," ROT : "+CountField(1)
If feld(xx,yy) = 2 Then Color 0,0,255:Text 600,30,"BLAU : "+CountField(2)
Next
Next
Flip
Until KeyHit(1)
End

Function CountField(W)
End Function


Mit der Function "CountField(W) möchte ich auslesen, wie viele felder der be´sitzers des Wertes(w) hat... Aba ich hab kp wie !

Könnted iha mia helfen?

wäre nett von euch !

thx und mfg

Crack
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!

StepTiger

BeitragSo, Feb 11, 2007 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
for x=0 to 50
for y=0 to 50
if feld(x,y)=w then bauer=bauer+1
next
next
return bauer


Huh! Harte Arbeit.

War jetzt zu faul zum einrücken, aber das schaffst du schon Laughing
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

SpionAtom

BeitragMo, Feb 12, 2007 1:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du das in der Function machst, dann machst du dir doppelte, unnötige Arbeit.
Beim Zeichnen hast du den Code nämlich fast schon:
Code: [AUSKLAPPEN]
For xx = 1 To fx
For yy = 1 To fy
If feld(xx,yy) = 1 Then Color 255,0,0:Rect xx*10+2,yy*10+2,7,7 : rot = rot + 1
If feld(xx,yy) = 2 Then Color 0,0,255:Rect xx*10+2,yy*10+2,7,7 : blau = blau + 1
Next
Next
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

ToeB

BeitragMo, Feb 12, 2007 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
SpionAtom hat Folgendes geschrieben:
Wenn du das in der Function machst, dann machst du dir doppelte, unnötige Arbeit.
Beim Zeichnen hast du den Code nämlich fast schon:
Code: [AUSKLAPPEN]
For xx = 1 To fx
For yy = 1 To fy
If feld(xx,yy) = 1 Then Color 255,0,0:Rect xx*10+2,yy*10+2,7,7 : rot = rot + 1
If feld(xx,yy) = 2 Then Color 0,0,255:Rect xx*10+2,yy*10+2,7,7 : blau = blau + 1
Next
Next


Nee das hab ich schon versucht, da zählt der immer + 1, also kommt da dann auch 11203 raus obwohl du nua 1 feld hast ^^

~Edit~

Danke StepTiger ! Aber die lösung ist mir über nacht auch eingefallen Laughing ! Dankee trotzdem für die bemühungen !

Jetzt will ich überprüfen ob es da ein geschlossenes feld gibt, sprich Zitat:

|-------|
|-------|
|-------|

und das der dan dieses feld ,it der Farbe ausfüllt ?

SpionAtom

BeitragMo, Feb 12, 2007 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht hast du einfach vergessen die Zählvariablen (bei mir "rot" und "blau") vor den FOR..NEXT-Schleifen auf 0 zu setzen.

EDIT: Hab die zweite Frage falsch gelesen. Sorry

Es gibt immer ein geschlossenes Feld, wenn sich eine Schlange in den eigenen Schwanz beißt.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

ToeB

BeitragMo, Feb 12, 2007 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das weiß ich auch, aber das dann audfüllen...aber lassen wia dass, ware
nur sone idee Laughing ^^ !
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!

StepTiger

BeitragMo, Feb 12, 2007 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
dann gehst du eben jede reihe durch, wenn da ein feld ist, füllst du die reihe auf.

Aber ich glaub ich blick bei deiner Frage auch nichts so ganz durch.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

ToeB

BeitragMo, Feb 12, 2007 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
hab ja gesag "egal" hab mich jetzt anders entschieden ...
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!
 

Beatenvoy

BeitragDi, Feb 13, 2007 0:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine For-Next schleifen zählt im Hauptcode immer, ist ja klar Very Happy

Lass ihn doch alle Paar sekunden einmal durchlaufen und testen, und dann soll der immer wieder bei null anfangen ... Rolling Eyes

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group