Neues Spiel klappt nich

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: Neues Spiel klappt nich

BeitragSa, Feb 10, 2007 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum klappt das nich ?

Code: [AUSKLAPPEN]
;------Kreisschen------
;----------und---------
;------Kreuzchen ------
;------Version 1.0 ----

;Graphiken :

Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Kreischen und Kreuzchen"

SeedRnd MilliSecs()  ; Rand auf "Zufällig" stellen

;Dimmen und globaliesieren :
Dim Win3(8)
Dim feld(3,3)
Global Sieg

;Spielerauswahl :
Spieler = Rand(0,1)

;Schleife :
Repeat
ClsColor 30,60,90:Cls
Color 255,255,255
;Wer ist dran ? :
If (Spieler+1) = 1 Then Changed$ = "Spieler2"
If (Spieler+1) = 2 Then Changed$ = "Spieler1"
Text 1,20,"Spieler : "+ Changed$

;Spielefeld zeichnen :
For x = 1 To 3
For y = 1 To 3
Rect x*50,y*50,50,50,0
Next
Next
;Setzten des kreuzchen (oder kreises^^) :
If MouseHit(1)
For x = 1 To 3
For y = 1 To 3
If RectsOverlap(MouseX(),MouseY(),1,1,x*50,y*50,50,50) Then
If feld(x,y) = 0 Then Spieler = 1 - Spieler:feld(x,y) = Spieler+1
EndIf
Next
Next
EndIf
;Zeichnen des kreuzchens (oder kreises^^) :
For x = 1 To 3
For y = 1 To 3
If feld(x,y) = 1 Then Oval x*50+5,y*50+5,40,40,0
If feld(x,y) = 2 Then Line x*50+5,y*50+5,(x*50)+45,(y*50)+45:Line x*50+5,y*50+45,(x*50)+45,(y*50)+5
Next
Next

; Alles Neu :
If MouseHit(2) Then Neu = True
If Neu = True Then
Cls
Text 1,1,"Unentschieden !":Flip
For x = 1 To 3:For y = 1 To 3:feld(x,y) = 0:Next:Next
Sieg = True
Wait()
Neu = False
EndIf

Color 30,60,90:Rect 50,50,150,150,0
Color 255,255,255
;Den gewinner anzeigen :
If winline(1) = 1 Then
Text 1,1,"Spieler 1 hat gewonnen ^^":Flip:Wait()
For x = 1 To 3:For y = 1 To 3:feld(x,y) = 0:Next:Next
Sieg = True
EndIf
If winline(2) = 2 Then
Text 1,1,"Spieler 2 hat gewonnen ^^":Flip:Wait()
For x = 1 To 3:For y = 1 To 3:feld(x,y) = 0:Next:Next
Sieg = True
EndIf

If winline(1) = 0 And winline(2) = 0 Then Text 1,1,"Noch hat keina gewonnen ;)"

Flip
Until KeyHit(1)
End

;Winline überprüfen :
Function winline(W)
For i = 1 To 7
Win3(i) = W
Next
;Sebnkrecht :
For y = 1 To 3
If feld(1,y) <> W Then Win3(1) = 0
If feld(2,y) <> W Then Win3(2) = 0
If feld(3,y) <> W Then Win3(3) = 0
Next
;Waagerecht :
For x = 1 To 3
If feld(x,1) <> W Then Win3(4) = 0
If feld(x,2) <> W Then Win3(5) = 0
If feld(x,3) <> W Then Win3(6) = 0
Next
:Diagonal :
For i = 3 To 1 Step -1
If feld(i,i) <> W Then Win3(7) = 0
Next
If feld(3,1) = W
If feld(2,2) = W
If feld(1,3) = W
Win3(8) = W
EndIf
EndIf
EndIf
; Den wret Returnen :
For i = 1 To 8
If Win3(i) = W Then Return W
Next

End Function

;Warten function :
Function Wait()
Delay 100
FlushMouse()
FlushKeys()
Repeat
Wait = GetKey() Or GetMouse()
Until Wait
Cls
End Function


bitte helft mia !

thx,
mfg
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!

Dottakopf

BeitragSa, Feb 10, 2007 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
? was klappt den da nicht ?
du hast statt einem ; ein : gemacht ....

mfg Dottakopf (nice game)
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Shark

BeitragSa, Feb 10, 2007 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mal kurz drüber geguckt und hab heraus
gefunden, das die Diagonal gewinn function nicht korrekt funtkioniert...

Falls man waagerecht oder Senkrecht gewinnt, dann funktioniert das Spiel.

Jetzt liegt es an dir es richtig hinzubekommen Wink

mfg Shark

ToeB

BeitragSa, Feb 10, 2007 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dottakopf :

Wenn man/frau gewonnen hat, und dann ne (Maus)Taste drückt, soll ein "neues" spiel beginnen ! Das tut es auch, aber dann funzt irgentwie die gewinn überprüfung nich mehr correct Sad



@Shark :
Ups, ja stimmt ! Danke ! Ich werde es überarbeiten....

@Beide :

Danke das ihr so schnell geantwortet habt Wink



mfg

~Edit~ :
mist ich krig das nich hin !

Code: [AUSKLAPPEN]

;Also in der function "winline" :
f feld(1,3) = W
If feld(2,2) = W
If feld(3,1) = W
Win3(8) = W
EndIf
EndIf
EndIf

Da macht der gar nichts mehr !!

*verzweifel*
Crying or Very sad

ZaP

BeitragSo, Feb 11, 2007 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss das nicht so heißen?

Code: [AUSKLAPPEN]

if feld(1,3) = W
If feld(2,2) = W
If feld(3,1) = W
Win3(8) = W
EndIf
EndIf
EndIf


Du hast ein "i" vergessen.
Starfare: Worklog, Website (download)

ToeB

BeitragSo, Feb 11, 2007 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Guck mal hier Wink
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 Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group