PureGolf mit TicTacToe

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

@MLK:
Damit:

Code: Alles auswählen

win = OpenWindow(0,0,0,200,45,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Codezähler")
CreateGadgetList(win)
StringGadget(0,0,0,140,20,"")
ButtonGadget(1,141,0,58,20,"Browse")
ButtonGadget(2,0,22,60,20,"Count")
TextGadget(3,65,25,200,20,"Zeichen: ")
Repeat
  eventid=WaitWindowEvent()
  If eventid=#PB_Event_Gadget
    If EventGadgetID() = 1
      file.s = OpenFileRequester("Open","","PB-Code *.pb | *.pb| Alles *.* | *.*",0)
      SetGadgetText(0,file)
    ElseIf EventGadgetID() = 2
      count=0
      If file
        OpenFile(0,file)
        While Eof(0) = 0
          line.s = Trim(ReadString()) 
          If Mid(line,1,1) <> ";" : count+Len(line) : EndIf
        Wend
        CloseFile(0)
        SetGadgetText(3,"Zeichen: "+Str(count))        
      EndIf 
    EndIf
  EndIf
Until eventid = #PB_Event_CloseWindow
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

danke

das bekommt man bestimmt auch noch kürzer ;-)
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

761

Code: Alles auswählen

Dim T(9) 
s.s=" ist dran" 
t=79 
c=190 
CreateGadgetList(OpenWindow(0,0,0,c,250,1,"TicTacToe")) 
For a=0 To8 
  ButtonGadget(a,70*a%3,70*(a/3),50,50,"") 
  SetGadgetFont(a,LoadFont(a,"",24)) 
Next 
TextGadget(9,0,c,c,20,"O"+s,1) 
c/2 
ButtonGadget(c,0,220,c,30,"Neues Spiel") 
ButtonGadget(t,c,220,c,30,"Spiel Beenden") 
SetGadgetFont(9,LoadFont(9,"",12)) 
Repeat 
  w=WindowEvent() 
  If w=13100 
    O=EventwParam() 
    If O=t 
      End 
    ElseIf O=c 
      For a=0 To9 
        T(a)=0 
        SetGadgetText(a,"") 
        DisableGadget(a,0) 
      Next 
      P=0 
    Else 
      If T(O)=0 
        T(O)=P+1 
        DisableGadget(O,1) 
        SetGadgetText(O,Chr(t+P*9)) 
        SetGadgetText(9,Chr(t+P!1*9)+s) 
        j=P+1 
        For i=0 To2 
          x=i*3 
          If T(x)&T(x+1)&T(x+2)=j Or T(i)&T(i+3)&T(i+6)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j 
            SetGadgetText(9,Chr(t+P*9)+" gewinnt") 
            For a=0 To8 
              DisableGadget(a,1) 
            Next 
          EndIf 
        Next 
        P!1 
      EndIf 
    EndIf 
  EndIf 
ForEver
Zuletzt geändert von MLK am 31.01.2006 17:17, insgesamt 2-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

759!

Code: Alles auswählen

Dim T(9) 
s.s=" ist dran" 
t=79 
c=190 
CreateGadgetList(OpenWindow(0,0,0,c,250,1,"TicTacToe")) 

For a=0 To8 
  ButtonGadget(a,70*a%3,70*(a/3),50,50,"") 
  SetGadgetFont(a,LoadFont(a,"",24)) 
Next 
TextGadget(9,0,c,c,20,"O"+s,1) 
c/2 
ButtonGadget(c,0,220,c,30,"Neues Spiel") 
ButtonGadget(t,c,220,c,30,"Spiel Beenden") 
SetGadgetFont(9,LoadFont(9,"",12)) 
While 1
  w=WindowEvent() 
  If w=13100 
    O=EventwParam() 
    If O=t 
      End 
    ElseIf O=c 
      For a=0 To9 
        T(a)=0 
        SetGadgetText(a,"") 
        DisableGadget(a,0) 
      Next 
      P=0 
    Else 
      If T(O)=0 
        T(O)=P+1 
        DisableGadget(O,1) 
        SetGadgetText(O,Chr(t+P*9)) 
        SetGadgetText(9,Chr(t+P!1*9)+s) 
        j=P+1 
        For i=0 To2 
          x=i*3 
          If T(x)&T(x+1)&T(x+2)=j Or T(i)&T(i+3)&T(i+6)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j 
            SetGadgetText(9,Chr(t+P*9)+" gewinnt") 
            For a=0 To8 
              DisableGadget(a,1) 
            Next 
          EndIf 
        Next 
        P!1 
      EndIf 
    EndIf 
  EndIf 
Wend
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Lösung für die Aktuelle Version kommt gleich.

Für PB 10.0:

Code: Alles auswählen

CreatePingPong(#pb_source_short)
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

757

Code: Alles auswählen

Dim T(9) 
s.s=" ist dran" 
t=79 
c=190 
CreateGadgetList(OpenWindow(0,0,0,c,250,1,"TicTacToe")) 

For a=0 To8 
  ButtonGadget(a,70*a%3,70*(a/3),50,50,"") 
  SetGadgetFont(a,LoadFont(a,"",24)) 
Next 
TextGadget(9,0,c,c,20,"O"+s,1) 
c/2 
ButtonGadget(c,0,220,c,30,"Neues Spiel") 
ButtonGadget(t,c,220,c,30,"Spiel Beenden") 
SetGadgetFont(9,LoadFont(9,"",12)) 
While 1 
  w=WindowEvent() 
  If w=13100 
    O=EventwParam() 
    If O=t 
      End 
    ElseIf O=c 
      For a=0 To9 
        T(a)=0 
        SetGadgetText(a,"") 
        DisableGadget(a,0) 
      Next 
      P=0 
    Else 
      If T(O)=0 
        T(O)=P+SetGadgetText(9,Chr(t+P!1*9)+s)
        DisableGadget(O,SetGadgetText(O,Chr(t+P*9))) 
        j=P+1 
        For i=0 To2 
          x=i*3 
          If T(x)&T(x+1)&T(x+2)=j Or T(i)&T(i+3)&T(i+6)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j 
            SetGadgetText(9,Chr(t+P*9)+" gewinnt") 
            For a=0 To8 
              DisableGadget(a,1) 
            Next 
          EndIf 
        Next 
        P!1 
      EndIf 
    EndIf 
  EndIf 
Wend
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

756!

Code: Alles auswählen

Procedure S(k,s.s)
   SetGadgetText(k,s)
EndProcedure

Dim T(9)
s.s=" ist dran"
t=79
c=190
CreateGadgetList(OpenWindow(0,0,0,c,250,1,"TicTacToe"))
For a=0 To8
  ButtonGadget(a,70*a%3,70*(a/3),50,50,"")
  SetGadgetFont(a,LoadFont(a,"",24))
Next
TextGadget(9,0,c,c,20,"O"+s,1)
c/2
ButtonGadget(c,0,220,c,30,"Neues Spiel")
ButtonGadget(t,c,220,c,30,"Spiel Beenden")
SetGadgetFont(9,LoadFont(9,"",12))
l:
  w=WindowEvent()
  If w=13100
    O=EventwParam()
    If O=t
      End
    ElseIf O=c
      For a=0 To9
        T(a)=0
        S(a,"")
        DisableGadget(a,0)
      Next
      p=0
    Else
      If T(O)=0
        T(O)=p+1
        DisableGadget(O,1)
        S(O,Chr(t+p*9))
        S(9,Chr(t+p!1*9)+s)
        j=p+1
        For i=0 To2
          x=i*3
          If T(x)&T(x+1)&T(x+2)=j Or T(i)&T(i+3)&T(i+6)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j
            S(9,Chr(t+p*9)+" gewinnt")
            For a=0 To8
              DisableGadget(a,1)
            Next
          EndIf
        Next
        p!1
      EndIf
    EndIf
  EndIf
Goto l 
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

So langsam wirds eng:

754!

Code: Alles auswählen

Dim T(9) 
s.s=" ist dran" 
t=79 
c=190 
CreateGadgetList(OpenWindow(0,0,0,c,250,1,"TicTacToe")) 
For a=0 To8 
  ButtonGadget(a,70*a%3,70*(a/3),50,50,"") 
  SetGadgetFont(a,LoadFont(a,"",24)) 
Next 
TextGadget(9,0,c,c,20,"O"+s,1) 
c/2 
ButtonGadget(c,0,220,c,30,"Neues Spiel") 
ButtonGadget(t,c,220,c,30,"Spiel Beenden") 
SetGadgetFont(9,LoadFont(9,"",12)) 
1:
  w=WindowEvent() 
  If w=13100 
    O=EventwParam() 
    If O=t 
      End 
    ElseIf O=c 
      For a=0 To9 
        T(a)=0 
        SetGadgetText(a,"") 
        DisableGadget(a,0) 
      Next 
      P=0 
    Else 
      If T(O)=0 
        T(O)=P+SetGadgetText(9,Chr(t+P!1*9)+s) 
        DisableGadget(O,SetGadgetText(O,Chr(t+P*9))) 
        j=P+1 
        For i=0 To2 
          x=i*3 
          If T(x)&T(x+1)&T(x+2)=j Or T(i)&T(i+3)&T(i+6)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j 
            SetGadgetText(9,Chr(t+P*9)+" gewinnt") 
            For a=0 To8 
              DisableGadget(a,1) 
            Next 
          EndIf 
        Next 
        P!1 
      EndIf 
    EndIf 
  EndIf 
Goto 1
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Code: Alles auswählen

ButtonGadget(c,0,220,c,30,"Neues Spiel")
ButtonGadget(t,c,220,c,30,"Spiel Beenden")
... kann man noch ändern in ...

Code: Alles auswählen

ButtonGadget(c,0,220,c,30,"Neu")
ButtonGadget(t,c,220,c,30,"Ende")
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

@Kiffi:
Tja, warum nicht...
737!

Code: Alles auswählen

Dim T(9) 
s.s=" ist dran" 
t=79 
c=190 
CreateGadgetList(OpenWindow(0,0,0,c,250,1,"TicTacToe")) 
For a=0 To8 
  ButtonGadget(a,70*a%3,70*(a/3),50,50,"") 
  SetGadgetFont(a,LoadFont(a,"",24)) 
Next 
TextGadget(9,0,c,c,20,"O"+s,1) 
c/2 
ButtonGadget(c,0,220,c,30,"Neu") 
ButtonGadget(t,c,220,c,30,"Ende") 
SetGadgetFont(9,LoadFont(9,"",12)) 
1:
  w=WindowEvent() 
  If w=13100 
    O=EventwParam() 
    If O=t 
      End 
    ElseIf O=c 
      For a=0 To9 
        T(a)=0 
        SetGadgetText(a,"") 
        DisableGadget(a,0) 
      Next 
      P=0 
    Else 
      If T(O)=0 
        T(O)=P+SetGadgetText(9,Chr(t+P!1*9)+s) 
        DisableGadget(O,SetGadgetText(O,Chr(t+P*9))) 
        j=P+1
        For i=0 To2 
          x=i*3 
          If T(x)&T(x+1)&T(x+2)=j Or T(i)&T(i+3)&T(i+6)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j 
            SetGadgetText(9,Chr(t+P*9)+" gewinnt") 
            For a=0 To8 
              DisableGadget(a,1) 
            Next 
          EndIf 
        Next 
        P!1 
      EndIf 
    EndIf 
  EndIf 
Goto 1
Antworten