Gewinn mit 4 nochma...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

ToeB

Betreff: Gewinn mit 4 nochma...

BeitragSa, Feb 03, 2007 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo @All !
Ich hab mir mal wider das thema "Gewinn mit 4" vorgenommen und stehe vor ein paar problemen:

1.: Wie kann ich es Überprüfen, ob 4 in einer reihe(Waagerecht/Senkrecht/Diagonal) sind?

2.: Wie wechsel ich beide spieler ab?

Aber erstmal der Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Gewinn mit 4 (oder lass es bleiben...)"

Const win = 4

Dim feld(7,6)

Repeat
Color 0,255,255
Rect 40,40,360,310
For x = 1 To 7
For y = 1 To 6
Color 0,0,0
Oval x*50,y*50,45,45
If feld(x,y) = 1 Then Color 255,0,0:Oval x*50,y*50,45,45
If feld(x,y) = 2 Then Color 200,255,0:Oval x*50,y*50,45,45
If feld(x,y) = win Then End
Next
Next
If MouseHit(1) Then
For x = 1 To 7
If RectsOverlap(MouseX(),MouseY(),1,1,x*50,0,45,350) Then
For y = 6 To 1 Step -1
If feld(x,y) = 0 Then feld(x,y) = 1:Exit
Next
EndIf
Next
EndIf

Flip 0
Cls
Until KeyHit(1)
End


Ich würde mich freuen wenn ihr mia helfen würdet.

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!

FreetimeCoder

BeitragSa, Feb 03, 2007 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
So wird der Spieler gewechselt:
Code: [AUSKLAPPEN]
If MouseHit(1) Then
   Player=1-Player
   For x = 1 To 7
      If RectsOverlap(MouseX(),MouseY(),1,1,x*50,0,45,350) Then
         For y = 6 To 1 Step -1
            If feld(x,y) = 0 Then
               feld(x,y) = Player+1
               Exit
            EndIf
         Next
      EndIf
   Next
EndIf


Und zum Abfragen einer Reihe: Du benutzt doch ein Dim(), also frage die Felder ab Rolling Eyes

UND:
FORMATIER deinen Code endlich mal !!
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Eingeproggt

BeitragSa, Feb 03, 2007 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Vergleich mal meinen Code mit deinem. Sooo viel Arbeit wär das nicht gewesen.
Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Gewinn mit 4 (oder lass es bleiben...)"

Const win = 4
spielernummer=2

Dim feld(7,6)

Repeat
Color 0,255,255
Rect 40,40,360,310
For x = 1 To 7
For y = 1 To 6
Color 0,0,0
Oval x*50,y*50,45,45
If feld(x,y) = 1 Then Color 255,0,0:Oval x*50,y*50,45,45
If feld(x,y) = 2 Then Color 200,255,0:Oval x*50,y*50,45,45
If feld(x,y) = win Then End
Next
Next
If MouseHit(1) Then
If spielernummer=2 Then
   spielernummer=1
Else
   spielernummer=2
EndIf
For x = 1 To 7
If RectsOverlap(MouseX(),MouseY(),1,1,x*50,0,45,350) Then
For y = 6 To 1 Step -1
If feld(x,y) = 0 Then feld(x,y) = spielernummer:Exit
Next
EndIf
Next
EndIf

Flip 0
Cls
Until KeyHit(1)
End


EDIT: Verdammt, ich tippe wohl zu langsam^^
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ToeB

BeitragSa, Feb 03, 2007 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey cool danke !




~EDIT~
dieses "Player = 1- Palyer" muss hinter "RectsOverlap" aber vor die "For...Next schleife" dahiter !

Also so:
Code: [AUSKLAPPEN]

If MouseHit(1) Then
For x = 1 To 7
If RectsOverlap(MouseX(),MouseY(),1,1,x*50,0,45,350) Then
SR = 1-SR   <<<<<<<<<<<<<<<<<<<<<<<<<<<< Hier <<<<<<<
For y = 6 To 1 Step -1
If feld(x,y) = 0 Then feld(x,y) = SR+1:Exit
Next
EndIf
Next
EndIf


und nicht so
Code: [AUSKLAPPEN]

If MouseHit(1) Then
SR = 1-SR   <<<<<<<<<<<<<<<<<<<<<<<< Hier <<<<<<<<<<
For x = 1 To 7
If RectsOverlap(MouseX(),MouseY(),1,1,x*50,0,45,350) Then
For y = 6 To 1 Step -1
If feld(x,y) = 0 Then feld(x,y) = SR+1:Exit
Next
EndIf
Next
EndIf


Weil sonst ändert der die "Palyer" Varaible auch wenn man nirgentwo hinklickt ^^

~Edit(2)~

Ich weiß (jetzt) wie ich die reihen abfragen soll, zb. :
Code: [AUSKLAPPEN]

If feld(1,1) = 2(oder 1 ) then machwas

Aber ich möchte nicht immer Code: [AUSKLAPPEN]

If feld(1,1) = 1 And feld(1,2) = 1 And [...] then machwas

hinschreiben. Gibt es dafür nicht noch ne einfachere lösung?

FreetimeCoder

BeitragSa, Feb 03, 2007 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß nicht ob es einfacher ist, aber du kannst dir auch einen Algorithmus schreiben.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

ToeB

BeitragSa, Feb 03, 2007 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
sry, aber ich hab noch nie was von einem "Algorrythmus"(oder wie das heißt) gehört !? Kannst du mia bitte sagen was das ist?

thx und mfg

Crack


~EDIT~

Ist schon Okay Wink

Hab nachgeschaut !
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!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group