Seite 2 von 22

Verfasst: 31.01.2006 14:02
von HeX0R
Wo is denn das O=EventGadgetID() hin ?
Das dürfte so doch goa ned funktionieren, oder ? :shock:

Verfasst: 31.01.2006 14:03
von Macros
Funktioniert leider gar nicht :( .

Verfasst: 31.01.2006 14:09
von ts-soft
Noch 2 Zeichen gespart :mrgreen:

Code: Alles auswählen

Dim T(8)
If OpenWindow(0,216,0,190,260,$CC0000,"Tic Tac Toe") And CreateGadgetList(WindowID())
  f=LoadFont(1,"Arial",24)
  For a=0 To 8
    ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,"")
    SetGadgetFont(a,f)
  Next
  ButtonGadget(9,10,220,80,30,"Neues Spiel")
  ButtonGadget(10,100,220,80,30,"Spiel Beenden")
  g=LoadFont(2,"Arial",12)
  TextGadget(11,10,190,170,20,"O ist dran",1)
  SetGadgetFont(11,g)
  Repeat
    Select WaitWindowEvent()
      Case 16
        Break
      Case $332C
         O=EventwParam()
        If O=10
          Break
        ElseIf O=9
          For a=0 To 8
            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(79+P*9))
            SetGadgetText(11,Chr(79+P!1*9)+" ist dran")
            j=P+1
            If T(0)&T(1)&T(2)=j Or T(3)&T(4)&T(5)=j Or T(6)&T(7)&T(8)=j Or T(0)&T(3)&T(6)=j Or T(1)&T(4)&T(7)=j Or T(2)&T(5)&T(8)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j
              SetGadgetText(11,Chr(79+P*9)+" gewinnt")
              For a=0 To 8
                DisableGadget(a,1)
              Next
            EndIf
            P!1
          EndIf
        EndIf
    EndSelect
  ForEver
EndIf 

Verfasst: 31.01.2006 14:17
von HeX0R
904 :mrgreen:

Code: Alles auswählen

Dim T(8)
l=OpenWindow(0,216,0,190,260,$CC0000,"Tic Tac Toe")
If l And CreateGadgetList(l)
  f=LoadFont(1,"Arial",24)
  For a=0 To 8
    ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,"")
    SetGadgetFont(a,f)
  Next
  ButtonGadget(9,10,220,80,30,"Neues Spiel")
  ButtonGadget(10,100,220,80,30,"Spiel Beenden")
  g=LoadFont(2,"Arial",12)
  TextGadget(11,10,190,170,20,"O ist dran",1)
  SetGadgetFont(11,g)
  Repeat
    Select WaitWindowEvent()
      Case 16
        Break
      Case $332C
      	O=EventwParam()
        If O=10
          Break
        ElseIf O=9
          For a=0 To 8
            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(79+P*9))
            SetGadgetText(11,Chr(79+P!1*9)+" ist dran")
            j=P+1
            If T(0)&T(1)&T(2)=j Or T(3)&T(4)&T(5)=j Or T(6)&T(7)&T(8)=j Or T(0)&T(3)&T(6)=j Or T(1)&T(4)&T(7)=j Or T(2)&T(5)&T(8)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j
              SetGadgetText(11,Chr(79+P*9)+" gewinnt")
              For a=0 To 8
                DisableGadget(a,1)
              Next
            EndIf
            P!1
          EndIf
        EndIf
    EndSelect
  ForEver
EndIf

Verfasst: 31.01.2006 14:25
von nco2k
@ts-soft

Code: Alles auswählen

Dim T(8)
If OpenWindow(0,216,0,190,260,$CC0000,"Tic Tac Toe") And CreateGadgetList(WindowID())
  f=LoadFont(1,"Arial",24)
  For a=0 To 8:ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,""):SetGadgetFont(a,f):Next
  ButtonGadget(9,10,220,80,30,"Neues Spiel")
  ButtonGadget(10,100,220,80,30,"Spiel Beenden")
  g=LoadFont(2,"Arial",12)
  TextGadget(11,10,190,170,20,"O ist dran",1)
  SetGadgetFont(11,g)
  Repeat
    e=WaitWindowEvent()
    If e=$332C
      O=EventwParam()
      If O=10
        End
      ElseIf O=9
        For a=0 To 8: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(79+P*9))
          SetGadgetText(11,Chr(79+P!1*9)+" ist dran")
          j=P+1
          If T(0)&T(1)&T(2)=j Or T(3)&T(4)&T(5)=j Or T(6)&T(7)&T(8)=j Or T(0)&T(3)&T(6)=j Or T(1)&T(4)&T(7)=j Or T(2)&T(5)&T(8)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j
            SetGadgetText(11,Chr(79+P*9)+" gewinnt")
            For a=0 To 8:DisableGadget(a,1):Next
          EndIf
          P!1
        EndIf
      EndIf
    EndIf
  Until e=16
EndIf
175 zeichen weniger. :mrgreen:

oder ganz krass:

Code: Alles auswählen

Dim T(8):If OpenWindow(0,216,0,190,260,$CC0000,"Tic Tac Toe") And CreateGadgetList(WindowID()):f=LoadFont(1,"Arial",24):For a=0 To 8:ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,""):SetGadgetFont(a,f):Next:ButtonGadget(9,10,220,80,30,"Neues Spiel"):ButtonGadget(10,100,220,80,30,"Spiel Beenden"):g=LoadFont(2,"Arial",12):TextGadget(11,10,190,170,20,"O ist dran",1):SetGadgetFont(11,g):Repeat:e=WaitWindowEvent():If e=$332C:O=EventwParam():If O=10:End:ElseIf O=9:For a=0 To 8: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(79+P*9)):SetGadgetText(11,Chr(79+P!1*9)+" ist dran"):j=P+1:If T(0)&T(1)&T(2)=j Or T(3)&T(4)&T(5)=j Or T(6)&T(7)&T(8)=j Or T(0)&T(3)&T(6)=j Or T(1)&T(4)&T(7)=j Or T(2)&T(5)&T(8)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j:SetGadgetText(11,Chr(79+P*9)+" gewinnt"):For a=0 To 8:DisableGadget(a,1):Next:EndIf:P!1:EndIf:EndIf:EndIf:Until e=16:EndIf
413 zeichen gespart. :lol:

edit: also inkl. leerzeichen, ist auch mehr als scherz gemeint. :D

edit2: hey das mit l=OpenWindow() ist eine gute idee, an Select kannst du auch noch einiges sparen, wie in meinem code.

c ya,
nco2k

Verfasst: 31.01.2006 14:32
von HeX0R
@nco2k:
Du solltest dich vielleicht tatsächlich bemühen den Counter zu benutzen.
Dann würdest du sehn, dass dein letzten Beispiel immernoch 932 Zeichen hat.
Also wesentlich mehr als mein bisher bestes...

Verfasst: 31.01.2006 14:36
von HeX0R
897!

Code: Alles auswählen

s$=" ist dran"
Dim T(8)
l=OpenWindow(0,216,0,190,260,$CC0000,"Tic Tac Toe")
If l And CreateGadgetList(l)
  f=LoadFont(1,"Arial",24)
  For a=0 To 8
    ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,"")
    SetGadgetFont(a,f)
  Next
  ButtonGadget(9,10,220,80,30,"Neues Spiel")
  ButtonGadget(10,100,220,80,30,"Spiel Beenden")
  g=LoadFont(2,"Arial",12)
  TextGadget(11,10,190,170,20,"O"+s$,1)
  SetGadgetFont(11,g)
  Repeat
    w=WaitWindowEvent()
    If w=16
      Break
    ElseIf w=$332C
      O=EventwParam()
      If O=10
        Break
      ElseIf O=9
        For a=0 To 8
          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(79+P*9))
          SetGadgetText(11,Chr(79+P!1*9)+s$)
          j=P+1
          If T(0)&T(1)&T(2)=j Or T(3)&T(4)&T(5)=j Or T(6)&T(7)&T(8)=j Or T(0)&T(3)&T(6)=j Or T(1)&T(4)&T(7)=j Or T(2)&T(5)&T(8)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j
            SetGadgetText(11,Chr(79+P*9)+" gewinnt")
            For a=0 To 8
              DisableGadget(a,1)
            Next
          EndIf
          P!1
        EndIf
      EndIf
    EndIf
  ForEver
EndIf
(Dein Tipp war ned schlecht nco2k, hab aber noch ein Zeichen gut gemacht mit dem s$ ;) )

Verfasst: 31.01.2006 14:38
von HeX0R
884!

Code: Alles auswählen

s$=" ist dran"
Dim T(8)
l=OpenWindow(0,216,0,190,260,$CC0000,"Tic Tac Toe")
If l And CreateGadgetList(l)
  f=LoadFont(1,"Arial",24)
  For a=0 To 8
    ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,"")
    SetGadgetFont(a,f)
  Next
  ButtonGadget(9,10,220,80,30,"Neues Spiel")
  ButtonGadget(10,100,220,80,30,"Spiel Beenden")
  g=LoadFont(2,"Arial",12)
  TextGadget(11,10,190,170,20,"O"+s$,1)
  SetGadgetFont(11,g)
  Repeat
    w=WaitWindowEvent()
    If w=$332C
      O=EventwParam()
      If O=10
        Break
      ElseIf O=9
        For a=0 To 8
          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(79+P*9))
          SetGadgetText(11,Chr(79+P!1*9)+s$)
          j=P+1
          If T(0)&T(1)&T(2)=j Or T(3)&T(4)&T(5)=j Or T(6)&T(7)&T(8)=j Or T(0)&T(3)&T(6)=j Or T(1)&T(4)&T(7)=j Or T(2)&T(5)&T(8)=j Or T(0)&T(4)&T(8)=j Or T(2)&T(4)&T(6)=j
            SetGadgetText(11,Chr(79+P*9)+" gewinnt")
            For a=0 To 8
              DisableGadget(a,1)
            Next
          EndIf
          P!1
        EndIf
      EndIf
    EndIf
  Until w=16
EndIf

Verfasst: 31.01.2006 14:41
von ts-soft
@nco2k
Durch die Doppelpunkte wirds nur mehr :mrgreen:

@HeX0R
Das Fensterhandle hab ich übersehen :(
Jetzt wirds aber eng :wink:

Verfasst: 31.01.2006 14:43
von NicTheQuick
850 Zeichen!

Code: Alles auswählen

Dim T(8) 
If OpenWindow(0,216,0,190,260,$CC<<16,"Tic Tac Toe") And CreateGadgetList(WindowID()) 
  For a=0 To 8 
    ButtonGadget(a,10+60*a%3,10+60*(a/3),50,50,"") 
    SetGadgetFont(a,LoadFont(a,"Arial",24)) 
  Next 
  ButtonGadget(9,10,220,80,30,"Neues Spiel") 
  ButtonGadget(10,100,220,80,30,"Spiel Beenden") 
  TextGadget(11,10,190,170,20,"O ist dran",1) 
  SetGadgetFont(11,LoadFont(9,"Arial",12))
  Repeat 
    Select WindowEvent() 
      Case 16 
        Break 
      Case 13100 
        O=EventGadgetID() 
        If O=10 
          Break 
        ElseIf O=9 
          For a=0 To 8 
            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(79+P*9)) 
            SetGadgetText(11,Chr(79+P!1*9)+" ist dran") 
            j=P+1 
            For i=0 To 2 
              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(11,Chr(79+P*9)+" gewinnt") 
                For a=0 To 8 
                  DisableGadget(a,1) 
                Next 
              EndIf 
            Next 
            P!1 
          EndIf 
        EndIf 
    EndSelect 
  ForEver 
EndIf 
Ich mache mal einen neuen Thread dafür auf, sonst fühlt sich Badboy
noch belästigt.