2Player

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Sep 04, 2005 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
X ist gleich 0
und
wenn du dann

Code: [AUSKLAPPEN]
If k1 = x Then Line

dann wird es gezeichnet!

K1 ist der ein/Aus schalter
0 = aus
1 = an
BlitzBasic: [AUSKLAPPEN]
If mauskollision(1,155,56)  Then k1 = 1  ;Einschalten


If k1 = 1 Then Line(155,56,255,156) ;wenn An dann zeichnen
[BB2D | BB3D | BB+]

felix-pf

BeitragSo, Sep 04, 2005 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
und wieder was neues gelernt!
Danke!!!
User posted image

felix-pf

BeitragSo, Sep 04, 2005 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Evil or Very Mad Ich könnt doch.. Evil or Very Mad
Ich hab jetzt alle x in 1en umbenannt,
Un jetzt gehts auch wunderber...
Twisted Evil ABER NUR MIT DEN ERSTEN DREI ! ! !
Crying or Very sad heul Crying or Very sad
Code: [AUSKLAPPEN]
;################# ********
;## TIC TAC TOE ## *(BB2D)*
;################# ********
Graphics 800,600,16,1
SetBuffer BackBuffer()

Global k1=0
Global k2=0
Global k3=0
Global k4=0
Global k5=0
Global k6=0
Global k7=0
Global k8=0
Global k9=0

;Global maus=LoadImage("maus.bmp")

Repeat
Cls
Rect(155,56,100,100,0)   ;links  oben
Rect(155,220,100,100,0)  ;links  mitte
Rect(155,385,100,100,0)  ;links  unten
Rect(360,56,100,100,0)   ;mitte  oben
Rect(360,220,100,100,0)  ;mitte  mitte
Rect(360,385,100,100,0)  ;mitte  unten
Rect(550,56,100,100,0)   ;rechts oben
Rect(550,220,100,100,0)  ;rechts mitte
Rect(550,385,100,100,0)  ;rechts unten


If MouseHit(1) Then
 If mauskollision(1,155,56)  And k1 = 0 Then k1 = 1
 If mauskollision(2,155,220) And k2 = 0 Then k2 = 1
 If mauskollision(3,155,385) And k3 = 0 Then k3 = 1
 If mauskollision(4,360,56)  And k4 = 0 Then k2 = 1
 If mauskollision(5,360,220) And k5 = 0 Then k2 = 1
 If mauskollision(6,360,385) And k6 = 0 Then k2 = 1
 If mauskollision(7,550,56)  And k7 = 0 Then k2 = 1
 If mauskollision(8,550,220) And k8 = 0 Then k2 = 1
 If mauskollision(9,550,385) And k9 = 0 Then k2 = 1
 EndIf
 
 If k1 = 1 Then Line(155,56,255,156)  ;links  oben
 If k2 = 1 Then Line(155,220,255,320) ;links  mitte
 If k3 = 1 Then Line(155,385,255,485) ;links  unten
 If k4 = 1 Then Line(360,56,460,156)  ;mitte  oben
 If k5 = 1 Then Line(360,220,460,320) ;mitte  mitte
 If k6 = 1 Then Line(360,385,460,485) ;mitte  unten
 If m7 = 1 Then Line(550,56,650,156)  ;rechts oben
 If k8 = 1 Then Line(550,220,650,320) ;rechts mitte
 If k9 = 1 Then Line(550,385,650,485) ;rechts unten
 
;DrawImage(maus,MouseX(),MouseY())
Rect (MouseX(),MouseY(),8,8)
Flip
Until KeyHit(1)

WaitKey


End

Function mauskollision(kasten#,kastenx,kasteny)
If Rectsoverlap(kastenx,kasteny,100,100,MouseX(),MouseY(),1,1) Then
 

 
Return True
EndIf

Return False
End Function



User posted image

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Sep 04, 2005 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
 If mauskollision(4,360,56)  And k4 = 0 Then k2 = 1 
If mauskollision(5,360,220) And k5 = 0 Then k2 = 1
If mauskollision(6,360,385) And k6 = 0 Then k2 = 1
If mauskollision(7,550,56) And k7 = 0 Then k2 = 1
If mauskollision(8,550,220) And k8 = 0 Then k2 = 1
If mauskollision(9,550,385) And k9 = 0 Then k2 = 1

Warum steht da überall k2 = 1 Very Happy

und das hier Shocked
BlitzBasic: [AUSKLAPPEN]
If m7 = 1 Then Line...
[BB2D | BB3D | BB+]

felix-pf

BeitragMo, Sep 05, 2005 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Oops! Embarassed
User posted image
 

Medabots1992

BeitragMo, Sep 05, 2005 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
SO HAB SELBER MAL DAS GEMACHT:BlitzBasic: [AUSKLAPPEN]
;################# ********
;## TIC TAC TOE ## *(BB2D)*
;################# ********
Graphics 800,600,16,2
SetBuffer BackBuffer()

Dim k(8)
For i=0 To 8
k(i)=0
Next

;Global maus=LoadImage(\"maus.bmp\")

Repeat
Cls
Rect(155,56,100,100,0) ;links oben
Rect(155,220,100,100,0) ;links mitte
Rect(155,385,100,100,0) ;links unten
Rect(360,56,100,100,0) ;mitte oben
Rect(360,220,100,100,0) ;mitte mitte
Rect(360,385,100,100,0) ;mitte unten
Rect(550,56,100,100,0) ;rechts oben
Rect(550,220,100,100,0) ;rechts mitte
Rect(550,385,100,100,0) ;rechts unten


If MouseHit(1) Then
If mauskollision(1,155,56) And k(0) = 0 Then k(0) = 1
If mauskollision(2,155,220) And k(1) = 0 Then k(1) = 1
If mauskollision(3,155,385) And k(2) = 0 Then k(2) = 1
If mauskollision(4,360,56) And k(3) = 0 Then k(3) = 1
If mauskollision(5,360,220) And k(4) = 0 Then k(4) = 1
If mauskollision(6,360,385) And k(5) = 0 Then k(5) = 1
If mauskollision(7,550,56) And k(6) = 0 Then k(6) = 1
If mauskollision(8,550,220) And k(7) = 0 Then k(7) = 1
If mauskollision(9,550,385) And k(8) = 0 Then k(8) = 1
EndIf

If k(0) = 1 Then Line(155,156,255,56):Line(155,056,255,156) ;links oben
If k(1) = 1 Then Line(155,220,255,320):Line(155,320,255,220) ;links mitte
If k(2) = 1 Then Line(155,385,255,485):Line(155,485,255,385) ;links unten
If k(3) = 1 Then Line(360,56,460,156):Line(360,156,460,056) ;mitte oben
If k(4) = 1 Then Line(360,220,460,320):Line(360,320,460,220) ;mitte mitte
If k(5) = 1 Then Line(360,385,460,485):Line(360,485,460,385) ;mitte unten
If k(6) = 1 Then Line(550,56,650,156):Line(550,156,650,056) ;rechts oben
If k(7) = 1 Then Line(550,220,650,320):Line(550,320,650,220) ;rechts mitte
If k(8) = 1 Then Line(550,385,650,485):Line(550,485,650,385) ;rechts unten

;DrawImage(maus,MouseX(),MouseY())
Rect (MouseX(),MouseY(),8,8)
For o=0 To 8
Text 0,20*o,k(o)
Next
Flip
Until KeyHit(1)

WaitKey


End

Function mauskollision(kasten#,kastenx,kasteny)
If RectsOverlap(kastenx,kasteny,100,100,MouseX(),MouseY(),1,1) Then



Return True
EndIf

Return False
End Function


Das ist so einfach aber das kann man von manchen nicht erwarten.^^
Ok hier war der code.
es ist sehr simple ich werde mal ein Hotseat-oneplayer-netzwerk/internet beispiel mal irgendwan zeigen.
Das werde ich morgen noch proggen kann ja net so schwer sein Wink
Vorallem wird der KI schwer sein (nie gemacht hab)[/code]

felix-pf

BeitragMi, Sep 07, 2005 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Endlich...
Ich habs fertig gebracht!!! Very Happy
Danke an alle die mir geholfen haben. Razz
Noch irgendwelche Verbesserungsvorschläge?
Hier der Code:
Code: [AUSKLAPPEN]

;#################  ***********
;## TIC TAC TOE ##  ** BB 2D **
;#################  ***********


;################### Grundeinstellungen ###################################
;                                                                         #
 Graphics 800,600,16,1 ;-------------{ Fenster-größe und -art festlegen }-#
;                                                                         #
 SetBuffer BackBuffer() ;-------------------{ Buffer festlegen }----------#
;                                                                         #
; Global maus=LoadImage("maus.bmp");-{ Bild für Cursor laden (optional) }-#
;                                                                         #
;##########################################################################


;******************** X und O festlegen ************************
;                                                                                           *
;#################### X festlegen ###########################  *
 Global k1=0  ;links  oben                                  #  *
 Global k2=0  ;links  mitte                                 #  *
 Global k3=0  ;links  unten                                 #  *
 Global k4=0  ;mitte  oben                                  #  *
 Global k5=0  ;mitte  mitte                                 #  *
 Global k6=0  ;mitte  unten                                 #  *
 Global k7=0  ;rechts oben                                  #  *
 Global k8=0  ;rechts mitte                                 #  *
 Global k9=0  ;rechts unten                                 #  *
;############################################################  *
;                                                              *
;#################### O festlegen ###########################  *
 Global o1=0  ;links  oben                                  #  *
 Global o2=0  ;links  mitte                                 #  *
 Global o3=0  ;links  unten                                 #  *
 Global o4=0  ;mitte  oben                                  #  *
 Global o5=0  ;mitte  mitte                                 #  *
 Global o6=0  ;mitte  unten                                 #  *
 Global o7=0  ;rechts oben                                  #  *
 Global o8=0  ;rechts mitte                                 #  *
 Global o9=0  ;rechts unten                                 #  *
;############################################################  *
;                                                              *
;***************************************************************



;################### Spieler festlegen ## [0 = X]-[1 = O] ###
 s=0  ;Spieler 1(X) beginnt                                 #
;############################################################



;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+++++++++++++++++++++++-===================-+++++++++++++++++++++++
;+++++++++++++++++++++++-== Spielschleife ==-+++++++++++++++++++++++
;+++++++++++++++++++++++-===================-+++++++++++++++++++++++
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Repeat ;-{ Spielschleife (Anfang) }-------

 Cls ;---{ Bildschirm löschen }-----------

 ; Unten an den Bildschirm schreiben
 If s = 0 Then
 Text 0,570,"                                            Spieler 1 (X) ist am Zug"
 EndIf
 
 If s = 1 Then
 Text 0,570,"                                            Spieler 2 (O) ist am Zug"
 EndIf


;/\/\/\/\ Rechtecke zeichnen /\/\/\/\/\/\
 Rect(155,56,100,100,0)   ;links  oben  /
 Rect(155,220,100,100,0)  ;links  mitte \
 Rect(155,385,100,100,0)  ;links  unten /
 Rect(360,56,100,100,0)   ;mitte  oben  \
 Rect(360,220,100,100,0)  ;mitte  mitte /
 Rect(360,385,100,100,0)  ;mitte  unten \
 Rect(550,56,100,100,0)   ;rechts oben  /
 Rect(550,220,100,100,0)  ;rechts mitte \
 Rect(550,385,100,100,0)  ;rechts unten /
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\


;++++++++++++ Mausklickabfrage - Mausposition ++++++++++++
;++++++++++++ Variablen prüfen und einstellen ++++++++++++
;                                                       ++
If MouseHit(1) Then ;--------{ Mausklickabfrage }-------++
;                                                       ++
 If mauskollision(155,56) ;--{ Kollisionsabfrage }------++
  If s=0 And k1 = 0 And o1 = 0 Then k1 = 1  s=1 ; (X)   ++
  If s=1 And o1 = 0 And k1 = 0 Then o1 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(155,220) ;-{ Kollisionsabfrage }------++
  If s=0 And k2 = 0 And o2 = 0 Then k2 = 1  s=1 ; (X)   ++
  If s=1 And o2 = 0 And k2 = 0 Then o2 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(155,385) ;-{ Kollisionsabfrage }------++
  If s=0 And k3 = 0 And o3 = 0 Then k3 = 1  s=1 ; (X)   ++
  If s=1 And o3 = 0 And k3 = 0 Then o3 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(360,56)  ;-{ Kollisionsabfrage }------++
  If s=0 And k4 = 0 And o4 = 0 Then k4 = 1  s=1 ; (X)   ++
  If s=1 And o4 = 0 And k4 = 0 Then o4 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(360,220) ;-{ Kollisionsabfrage }------++
  If s=0 And k5 = 0 And o5 = 0 Then k5 = 1  s=1 ; (X)   ++
  If s=1 And o5 = 0 And k5 = 0 Then o5 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(360,385) ;-{ Kollisionsabfrage }------++
  If s=0 And k6 = 0 And o6 = 0 Then k6 = 1  s=1 ; (X)   ++
  If s=1 And o6 = 0 And k6 = 0 Then o6 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(550,56)  ;-{ Kollisionsabfrage }------++
  If s=0 And k7 = 0 And o7 = 0 Then k7 = 1  s=1 ; (X)   ++
  If s=1 And o7 = 0 And k7 = 0 Then o7 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(550,220) ;-{ Kollisionsabfrage }------++
  If s=0 And k8 = 0 And o8 = 0 Then k8 = 1  s=1 ; (X)   ++
  If s=1 And o8 = 0 And k8 = 0 Then o8 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                                       ++
 If mauskollision(550,385) ;-{ Kollisionsabfrage }------++
  If s=0 And k9 = 0 And o9 = 0 Then k9 = 1  s=1 ; (X)   ++
  If s=1 And o9 = 0 And k9 = 0 Then o9 = 1  s=0 ; (O)   ++
 EndIf                                          ;       ++
;                                               ;       ++
EndIf                                           ;       ++
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 

;******************** X und O zeichnen *******************
;                                                        *
;#################### X zeichnen ######################  *
;-------------------------{ links   oben }------------#  *
 If k1 = 1 Then                  ;                    #  *
  Line(155,56,254,155)           ;                    #  *
  Line(254,56,155,155)           ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ links  mitte }------------#  *
 If k2 = 1 Then                  ;                    #  *
  Line(155,220,254,319)          ;                    #  *
  Line(254,220,155,319)          ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ links  unten }------------#  *
 If k3 = 1 Then                  ;                    #  *
  Line(155,385,254,484)          ;                    #  *
  Line(254,385,155,484)          ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ mitte   oben }------------#  *
 If k4 = 1 Then                  ;                    #  *
  Line(360,56,459,155)           ;                    #  *
  Line(459,56,360,155)           ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ mitte  mitte }------------#  *
 If k5 = 1 Then                  ;                    #  *
  Line(360,220,459,319)          ;                    #  *
  Line(459,220,360,319)          ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ mitte  unten }------------#  *
 If k6 = 1 Then                  ;                    #  *
  Line(360,385,459,484)          ;                    #  *
  Line(459,385,360,484)          ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ rechts  oben }------------#  *
 If k7 = 1 Then                  ;                    #  *
  Line(550,56,649,155)           ;                    #  *
  Line(649,56,550,155)           ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ rechts mitte }------------#  *
 If k8 = 1 Then                  ;                    #  *
  Line(550,220,649,319)          ;                    #  *
  Line(649,220,550,319)          ;                    #  *
 EndIf                           ;                    #  *
;-------------------------{ rechts unten }------------#  *
 If k9 = 1 Then                  ;                    #  *
  Line(550,385,649,484)          ;                    #  *
  Line(649,385,550,484)          ;                    #  *
 EndIf                           ;                    #  *
;######################################################  *
;                                                        *
;#################### O zeichnen ######################  *
 If o1 = 1 Then Oval(155,56,100,100,0)  ;links  oben  #  *
 If o2 = 1 Then Oval(155,220,100,100,0) ;links  mitte #  *
 If o3 = 1 Then Oval(155,385,100,100,0) ;links  unten #  *
 If o4 = 1 Then Oval(360,56,100,100,0)  ;mitte  oben  #  *
 If o5 = 1 Then Oval(360,220,100,100,0) ;mitte  mitte #  *
 If o6 = 1 Then Oval(360,385,100,100,0) ;mitte  unten #  *
 If o7 = 1 Then Oval(550,56,100,100,0)  ;rechts oben  #  *
 If o8 = 1 Then Oval(550,220,100,100,0) ;rechts mitte #  *
 If o9 = 1 Then Oval(550,385,100,100,0) ;rechts unten #  *
;######################################################  *
;                                                        *
;*********************************************************
 
;#################### Maus zeichnen ############################
 ;DrawImage(maus,MouseX(),MouseY()) ;Wenn Bild oben geladen    #
 Rect (MouseX(),MouseY(),8,8)     ;Wenn kein Bild geladen ist  #
;###############################################################
 
;++++++++++++++ Alles zurücksetzen (neues Spiel) +++++++++
;                                                        +
 If KeyHit(57) Then ; Wenn die Leertaste gedrückt wird.. +
  k1=0              ; ..wird alles zurück gesetzt        +
  k2=0              ;                                    +
  k3=0              ;                                    +
  k4=0              ;                                    +
  k5=0              ;                                    +
  k6=0              ;                                    +
  k7=0              ;                                    +
  k8=0              ;                                    +
  k9=0              ;                                    +
;--------------------------------------------------------+
  o1=0              ;                                    +
  o2=0              ;                                    +
  o3=0              ;                                    +
  o4=0              ;                                    +
  o5=0              ;                                    +
  o6=0              ;                                    +
  o7=0              ;                                    +
  o8=0              ;                                    +
  o9=0              ;                                    +
;--------------------------------------------------------+
   EndIf             ;                                    +
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 Flip ;---------------{ Buffer wechseln }------------

 Until KeyHit(1) ;----{ Spielschleife (Ende) }-------

 End ;----------------{ Ende }-----------------------

;############################### Funktionen ################################
;                                                                          #
;************************* Mauskollision Abfragen ***********************  #
 Function mauskollision(kastenx,kasteny)                               ;*  #
  If Rectsoverlap(kastenx,kasteny,100,100,MouseX(),MouseY(),1,1) Then  ;*  #
   Return True ; Wenn sich die Maus und der Kasten berühren            ;*  #
  EndIf        ; dann "wahr" zurückgeben.                              ;*  #
 Return False  ; Ansonsten "falsch" zurückgeben                        ;*  #
End Function   ; Ende der Funktion                                     ;*  #
;************************************************************************  #
;                                                                          #
;###########################################################################



Danke nochmal an alle! Wink

PS: Hoffe es ist Übersichtlich genug Wink
User posted image

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Sep 07, 2005 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo felix-pf, ich habe mal ein neues TicTacToe erstellt. Dein Code ist in Ordnung, nur für mich etwas unübersichtlich. Es gibt da viele Sachen die man 'einfacher' machen kann.

Beispiele:
1) Die [Global k123.../o123...] -Variablen, kann man mit hilfe eines zweidimensionalem Arrays (Dim) vereinfachen. Arrays sind für solche Rasterorientierten Spiele, wo die Spielfeldgröße von Anfang festgelegt ist, sehr praktisch.
2) Neunmal Rect um das Spielfeld zu erstellen, kann bei größeren Projekten zu vertippern kommen! Dann ist die Fehlersuche sicherlich eine Qual. Mach sowas lieber mit zwei verschachtelten For...Next -Schleifen.
3) Mauskollisionen können in diesem Spielbeispiel auch mit zwei verschachtelten For...Next -Schleifen abgefangen werden. Fehlerquellen werden sofort erkennbar.
4) X und O zeichnen... Siehe Punkt 1) 2) 3)

Lerne mal zunächst wie eine For...Next -Schleife funktioniert. Eine solche ist unabdingbar (schreibt man das so?) zum programmieren. Du hast ja bereits Funktionen in deinem Programm eingebaut. Diese sind für Anfänger sicherlich nicht einfacher als For...Next. Nur wesentlich unwichtiger. Hier mal der Code wie man es machen könnte. Ich gebe zu, daß hier einiges am Anfang etwas unverständlich sein könnte, da viel 'getrickst' wurde... Falls du Fragen dazu hast, immer her damit...

Code: [AUSKLAPPEN]
Graphics 301,301,16,2
SetBuffer BackBuffer()
AppTitle "Tic Tac Toe"

Dim xy(2,2)   ;3*3 großes Spielfeldarray erstellen
sp%=0   ;spielender Spieler (0=Spieler 1), (1=Spieler 2)
mx%=0   ;Maus-X-Spielfeldposition (0-2)
my%=0   ;Maus-Y-Spielfeldposition (0-2)
mt%=0   ;MausHit(1) Zwischenspeicherung
xx%=0   ;Schleifenvariable für X-Position
yy%=0   ;Schleifenvariable für Y-Position
qq%=0   ;Allgemeine Schleifenvariable
sx%=0   ;Gewinner'querr'summe für X
sy%=0   ;Gewinner'querr'summe für Y
sz%=0   ;Spielzugzähler




;Hauptroutine
While Not KeyHit(1)

 ;Mausabfrage
 mx=MouseX()/100
 my=MouseY()/100
 mt=MouseHit(1)
 If mx>2 Then mx=2
 If my>2 Then my=2

 ;Zeichne..
 spielfeld()

 ;Spieleranzeige
 Color 255,255,255
 Rect mx*100,my*100,101,101,0
 If Not xy(mx,my)=0 Then Color 255,0,0
 If sp=0 Then
  Line 2+mx*100,12+my*100,12+mx*100,2+my*100
  Line 2+mx*100,2+my*100,12+mx*100,12+my*100
 Else
  Oval 2+mx*100,2+my*100,12,12,0
 End If

 ;Ein Spieler hat was ausgewählt
 If mt=1 And xy(mx,my)=0 Then
  xy(mx,my)=sp+1
  ;Ganz einfache
  ;Gewinnerprüfung
  ;Vertikal/Horizontal
  For yy=0 To 2
   sx=0
   sy=0
   For xx=0 To 2
    ;Horizontale Gewinnerprüfung
    If xy(xx,yy)=sp+1 Then sx=sx+xy(xx,yy)
    ;Vertikale Gewinnerprüfung
    If xy(yy,xx)=sp+1 Then sy=sy+xy(yy,xx)
   Next
   If sx=(sp+1)*3 Then gewonnen(sp+1)
   If sy=(sp+1)*3 Then gewonnen(sp+1)
  Next
  ;Ganz einfache
  ;Gewinnerprüfung
  ;Diagonal
  sx=0
  sy=0
  For qq=0 To 2
   ;Diagonale Gewinnerprüfung (\)
   If xy(qq,qq)=sp+1 Then sx=sx+xy(qq,qq)
   ;Diagonale Gewinnerprüfung (/)
   If xy(qq,2-qq)=sp+1 Then sy=sy+xy(qq,2-qq)
   Next
  If sx=(sp+1)*3 Then gewonnen(sp+1)
  If sy=(sp+1)*3 Then gewonnen(sp+1)
  ;Wechsel
  sp=1-sp
  sz=sz+1
 End If

 ;Falls keiner gewonnen hat
 If sz=9 Then gewonnen(0)

 ;Zurrücksetzen
 If KeyDown(57) Then
  For yy=0 To 2
   For xx=0 To 2
    xy(xx,yy)=0
   Next
  Next
 sp=0
 sz=0
 End If

 Flip
 Cls
Wend
End




;Spielfeld zeichnen
Function spielfeld()
 For yy=0 To 2
  For xx=0 To 2
   ;Spielfledraster
   Color 128,128,128
   Rect xx*100,yy*100,101,101,0
   ;Spieler 1 (Kreuz)
   If xy(xx,yy)=1 Then
    Color 192,192,192
    Line 15+xx*100,15+yy*100,85+xx*100,85+yy*100
    Line 15+xx*100,85+yy*100,85+xx*100,15+yy*100
   End If
   ;Spieler 2 (Kreis)
   If xy(xx,yy)=2 Then
    Color 192,192,192
    Oval 10+xx*100,10+yy*100,80,80,0
   End If
  Next
 Next
End Function




;Gewinnnerauskunft
Function gewonnen(sp)
 Cls
 spielfeld()
 Color 64,64,64
 Rect 1,1,299,16,1
 Rect 1,284,299,16,1
 Color 255,255,255
 If sp=0 Then Text 150,2,"Es hat keiner gewonnen!",1
 If sp=1 Then Text 150,2,"Spieler Kreuz hat gewonnen!",1
 If sp=2 Then Text 150,2,"Spieler Kreis hat gewonnen!",1
 Text 150,285,"Eine Taste drücken um zu Beenden",1
 Flip
 FlushKeys
 WaitKey
 End
End Function
 

Medabots1992

BeitragDo, Sep 08, 2005 9:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das finde ich auch sehr gut.
Für die länge passt es Smile
Daraus ein netzwerk game zu machen wird denke ich nicht so schwer sein.
Aber es gewinnt meistens nur der der anfängt oder keiner.
Naja ist ja ein simples game wo man nicht durch zufall gewinnen kann Smile

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group