Tic Tac Toe

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

So habs nun geschaft dass der COmputer immer per random setzt!!!!
Wers will kann haben
aber ich schreibe es euch nicht vor sonder bitte euch nur drumm das ihr die Funktionen nicht bearbeitet!
Den rest könnt ihr so verändern wie ihr wollt!!!!

Code: Alles auswählen

; PureBasic Visual Designer v3.80 build 1249


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #OL
  #OM
  #OR
  #ML
  #MM
  #MR
  #UL
  #UM
  #UR
  #NAchricht
  #Spielende
  #Neustart
EndEnumeration

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Arial", 24)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12)

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 190, 260,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Tic Tac Toe")
    If CreateGadgetList(WindowID())
      ButtonGadget(#OL, 10, 10, 50, 50, "")
      SetGadgetFont(#OL, FontID1)
      ButtonGadget(#OM, 70, 10, 50, 50, "")
      SetGadgetFont(#OM, FontID1)
      ButtonGadget(#OR, 130, 10, 50, 50, "")
      SetGadgetFont(#OR, FontID1)
      ButtonGadget(#ML, 10, 70, 50, 50, "")
      SetGadgetFont(#ML, FontID1)
      ButtonGadget(#MM, 70, 70, 50, 50, "")
      SetGadgetFont(#MM, FontID1)
      ButtonGadget(#MR, 130, 70, 50, 50, "")
      SetGadgetFont(#MR, FontID1)
      ButtonGadget(#UL, 10, 130, 50, 50, "")
      SetGadgetFont(#UL, FontID1)
      ButtonGadget(#UM, 70, 130, 50, 50, "")
      SetGadgetFont(#UM, FontID1)
      ButtonGadget(#UR, 130, 130, 50, 50, "")
      SetGadgetFont(#UR, FontID1)
      ButtonGadget(#Neustart, 10, 220, 80, 30, "Neues Spiel")
      ButtonGadget(#Spielende, 100, 220, 80, 30, "Spiel Beenden")
      TextGadget(#NAchricht, 10, 190, 170, 20, "", #PB_Text_Center)
      SetGadgetFont(#NAchricht, FontID2)
      
    EndIf
  EndIf
EndProcedure


Open_Window_0()

SetGadgetText(#Nachricht,"X ist dran")

Repeat 
  
  
  Event = WaitWindowEvent()
 
  If OL.l > 0 And OM.l > 0 And ORR.l > 0 And ML.l > 0 And MM.l > 0 And MR.l > 0 And UL.l > 0 And UM.l > 0 And UR.l > 0
    SetGadgetText(#Nachricht,"keiner hat gewonnen")
  EndIf
 
  
  If      OL.l = 1 And OM.l = 1 And ORR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ML.l = 1 And MM.l = 1 And MR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf UL.l = 1 And UM.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 1 And ML.l = 1 And UL.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OM.l = 1 And MM.l = 1 And UM.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 1 And MR.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 1 And MM.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 1 And MM.l = 1 And UL.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0    
  EndIf
  
  If      OL.l = 2 And OM.l = 2 And ORR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ML.l = 2 And MM.l = 2 And MR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf UL.l = 2 And UM.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 2 And ML.l = 2 And UL.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OM.l = 2 And MM.l = 2 And UM.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 2 And MR.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 2 And MM.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 2 And MM.l = 2 And UL.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0    
  EndIf
  
  
  
  
  If PL.l = 1
    KI.l = Random(8) + 1
    KIA.l = 1
    If KI.l = 1
      If OL.l = 0
        DisableGadget(#OL, 1)
        SetGadgetText(#OL,"O")
        OL.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 2
      If OM.l = 0
        DisableGadget(#OM, 1)
        SetGadgetText(#OM,"O")
        OM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 3
      If ORR.l = 0
        DisableGadget(#OR, 1)
        SetGadgetText(#OR,"O")
        ORR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 4
      If ML.l = 0
        DisableGadget(#ML, 1)
        SetGadgetText(#ML,"O")
        ML.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 5
      If MM.l = 0
        DisableGadget(#MM, 1)
        SetGadgetText(#MM,"O")
        MM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 6
      If MR.l = 0
        DisableGadget(#MR, 1)
        SetGadgetText(#MR,"O")
        MR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 7
      If UL.l = 0
        DisableGadget(#UL, 1)
        SetGadgetText(#UL,"O")
        UL.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 8
      If UM.l = 0
        DisableGadget(#UM, 1)
        SetGadgetText(#UM,"O")
        UM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 9
      If UR.l = 0
        DisableGadget(#UR, 1)
        SetGadgetText(#UR,"O")
        UR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    EndIf
  EndIf
  
  
     
   
  If Event = #PB_EventCloseWindow 
    Quit = 1 
  ElseIf Event = #PB_Event_Gadget 
    
    Select EventGadgetID()
    
      Case #OL
        DisableGadget(#OL, 1)
        If     Pl.l = 0
          SetGadgetText(#OL,"X")
          OL.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OL,"O")
          OL.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #OM
        DisableGadget(#OM, 1)
        If     Pl.l = 0
          SetGadgetText(#OM,"X")
          OM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OM,"O")
          OM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #OR
        DisableGadget(#OR, 1)
        If     Pl.l = 0
          SetGadgetText(#OR,"X")
          ORR.l = 2
           Pl.l = 1
           SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OR,"O")
          ORR.l = 1
           Pl.l = 0
           SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #ML
        DisableGadget(#ML, 1)
        If     Pl.l = 0
          SetGadgetText(#ML,"X")
          ML.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#ML,"O")
          ML.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf

      Case #MM
        DisableGadget(#MM, 1)
        If Pl.l = 0
          SetGadgetText(#MM,"X")
          MM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#MM,"O")
          MM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #MR
        DisableGadget(#MR, 1)
        If Pl.l = 0
          SetGadgetText(#MR,"X")
          MR.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#MR,"O")
          MR.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #UL
        DisableGadget(#UL, 1)
        If Pl.l = 0
          SetGadgetText(#UL,"X")
          UL.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UL,"O")
          UL.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #UM
        DisableGadget(#UM, 1)
        If Pl.l = 0
          SetGadgetText(#UM,"X")
          UM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UM,"O")
          UM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
       
      Case #UR
        DisableGadget(#UR, 1)
        If Pl.l = 0
          SetGadgetText(#UR,"X")
          UR.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UR,"O")
          UR.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #Spielende
        End
        
      Case #Neustart
        DisableGadget(#OL,0) : SetGadgetText(#OL,"") :  OL.l = 0
        DisableGadget(#OM,0) : SetGadgetText(#OM,"") :  OM.l = 0
        DisableGadget(#OR,0) : SetGadgetText(#OR,"") : ORR.l = 0
        DisableGadget(#ML,0) : SetGadgetText(#ML,"") :  ML.l = 0
        DisableGadget(#MM,0) : SetGadgetText(#MM,"") :  MM.l = 0
        DisableGadget(#MR,0) : SetGadgetText(#MR,"") :  MR.l = 0
        DisableGadget(#UL,0) : SetGadgetText(#UL,"") :  UL.l = 0
        DisableGadget(#UM,0) : SetGadgetText(#UM,"") :  UM.l = 0
        DisableGadget(#UR,0) : SetGadgetText(#UR,"") :  UR.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
        Pl.l = 0
        
    EndSelect 
  EndIf 
  
Until Quit
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich wußte das Du es alleine schaffst :allright:
Wenn Du etwas mehr Kenntnisse im Programmieren hast, wirste den
Computergegner dann bestimmt noch "Intelligenter" machen. Also bewahr den Code erstmal schön auf.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

Bin dabei und ich bin mir sicher dass du ihn nicht fertig machst!!!
Danke für deine Ausdauer kann ich bitte deine ICQ Nummer haben und wenn nicht dann sags mir bitte!!!

Bin in Ca. 10-20 Min fertig testest du dann mal für mich???????

:allright:


Danke!!!!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
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 »

badboy99 hat geschrieben:aber ich schreibe es euch nicht vor sonder bitte euch nur drumm das ihr die Funktionen nicht bearbeitet!
Den rest könnt ihr so verändern wie ihr wollt!!!!
Da ist doch nur eine Procedure, die noch nicht einmal eine Funktion ist.
Also was bitteschön sollen wir da jetzt nicht verändern? Da ist ja nichts,
was man nicht verändern kann.

PS.: Du hast gar nichts zu meinem Code gesagt? Überhaupt schon
ausprobiert?
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

ja ich hab ihn ausprobiert und bei mir ist da ein Fehler und zwar sind es bei mir nur 3 Buttons unter einander und sonnst keine und angeguckkkt hab ich mir das nicht weil das hätt ich eh nicht verstanden!
:freak: :freak: :freak:

Bekomm ich mal deine ICQ numeer, nic für kleine PRoblemchen??? :D
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Badboy99 hat geschrieben: Bekomm ich mal deine ICQ numeer, nic für kleine PRoblemchen??? :D
1. Was willst du ständig mit deinem ICQ?
2. Deine Signatur ist etwas hoch, findest du nicht. Vorschlag: Mach den Link zu dem Ref-Spiel (monstersgame) raus, das wird hier sowieso nicht so gerne gesehen (siehe http://forums.purebasic.com/german/viewtopic.php?t=6161).
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

gut mach ich! [Edit: So meine Signatur ist weiter unten!! zufrieden??]

Und ich hab nen inteligenten KI
Der zuerst guck ob er fertig machen kann und wenn er das nicht kann dann guck er ob der Gegener fertig machen kann und wenn auch das nicht zutrifft macht er per zufall irgendwo ein kästchen!!

Also hier der Code:

Code: Alles auswählen

; PureBasic Visual Designer v3.80 build 1249


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #OL
  #OM
  #OR
  #ML
  #MM
  #MR
  #UL
  #UM
  #UR
  #NAchricht
  #Spielende
  #Neustart
EndEnumeration

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Arial", 24)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12)

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 190, 260,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Tic Tac Toe")
    If CreateGadgetList(WindowID())
      ButtonGadget(#OL, 10, 10, 50, 50, "")
      SetGadgetFont(#OL, FontID1)
      ButtonGadget(#OM, 70, 10, 50, 50, "")
      SetGadgetFont(#OM, FontID1)
      ButtonGadget(#OR, 130, 10, 50, 50, "")
      SetGadgetFont(#OR, FontID1)
      ButtonGadget(#ML, 10, 70, 50, 50, "")
      SetGadgetFont(#ML, FontID1)
      ButtonGadget(#MM, 70, 70, 50, 50, "")
      SetGadgetFont(#MM, FontID1)
      ButtonGadget(#MR, 130, 70, 50, 50, "")
      SetGadgetFont(#MR, FontID1)
      ButtonGadget(#UL, 10, 130, 50, 50, "")
      SetGadgetFont(#UL, FontID1)
      ButtonGadget(#UM, 70, 130, 50, 50, "")
      SetGadgetFont(#UM, FontID1)
      ButtonGadget(#UR, 130, 130, 50, 50, "")
      SetGadgetFont(#UR, FontID1)
      ButtonGadget(#Neustart, 10, 220, 80, 30, "Neues Spiel")
      ButtonGadget(#Spielende, 100, 220, 80, 30, "Spiel Beenden")
      TextGadget(#NAchricht, 10, 190, 170, 20, "", #PB_Text_Center)
      SetGadgetFont(#NAchricht, FontID2)
      
    EndIf
  EndIf
EndProcedure


Open_Window_0()

SetGadgetText(#Nachricht,"X ist dran")

Repeat 
  
  
  Event = WaitWindowEvent()
 
  If OL.l > 0 And OM.l > 0 And ORR.l > 0 And ML.l > 0 And MM.l > 0 And MR.l > 0 And UL.l > 0 And UM.l > 0 And UR.l > 0
    SetGadgetText(#Nachricht,"keiner hat gewonnen")
  EndIf
 
  
  If      OL.l = 1 And OM.l = 1 And ORR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ML.l = 1 And MM.l = 1 And MR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf UL.l = 1 And UM.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 1 And ML.l = 1 And UL.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OM.l = 1 And MM.l = 1 And UM.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 1 And MR.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 1 And MM.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 1 And MM.l = 1 And UL.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0    
  EndIf
  
  If      OL.l = 2 And OM.l = 2 And ORR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ML.l = 2 And MM.l = 2 And MR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf UL.l = 2 And UM.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 2 And ML.l = 2 And UL.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OM.l = 2 And MM.l = 2 And UM.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 2 And MR.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 2 And MM.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 2 And MM.l = 2 And UL.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0    
  EndIf
  
  
  

If PL.l = 1
    
  ; Spielerabfrage
  ; OR MM UL
  If     ORR.l = 1 And MM.l = 1 And UL.l = 0
      KI.l = 7
  ElseIf ORR.l = 1 And MM.l = 0 And UL.l = 1
      KI.l = 5
  ElseIf ORR.l = 0 And MM.l = 1 And UL.l = 1
      KI.l = 3
 
 
  ; OL MM UR
  ElseIf OL.l  = 1 And MM.l = 1 And UR.l = 0
      KI.l = 9
  ElseIf OL.l  = 1 And MM.l = 0 And UR.l = 1
      KI.l = 5
  ElseIf OL.l  = 0 And MM.l = 1 And UR.l = 1
      KI.l = 1
  
  
  ; OL OM OR
  ElseIf OL.l  = 1 And OM.l = 1 And ORR.l = 0  
      KI.l = 3
  ElseIf OL.l  = 1 And OM.l = 0 And ORR.l = 1  
      KI.l = 2
  ElseIf OL.l  = 0 And OM.l = 1 And ORR.l = 1  
      KI.l = 1
    
    
  ; ML MM MR
  ElseIf ML.l  = 1 And MM.l = 1 And MR.l = 0 
      KI.l = 6
  ElseIf ML.l  = 1 And MM.l = 0 And MR.l = 1 
      KI.l = 5
  ElseIf ML.l  = 0 And MM.l = 1 And MR.l = 1 
      KI.l = 4   
        
    
  ; UL UM UR
  ElseIf UL.l  = 1 And UM.l = 1 And UR.l = 0  
      KI.l = 9
  ElseIf UL.l  = 1 And UM.l = 0 And UR.l = 1  
      KI.l = 8
  ElseIf UL.l  = 0 And UM.l = 1 And UR.l = 1  
      KI.l = 7
    
    
  ; OL ML UL
  ElseIf OL.l  = 1 And ML.l = 1 And UL.l = 0  
      KI.l = 7
  ElseIf OL.l  = 1 And ML.l = 0 And UL.l = 1  
      KI.l = 4
  ElseIf OL.l  = 0 And ML.l = 1 And UL.l = 1  
      KI.l = 1
    
    
  ; OM MM UM
  ElseIf OM.l  = 1 And MM.l = 1 And UL.l = 0  
      KI.l = 8
  ElseIf OM.l  = 1 And MM.l = 0 And UL.l = 1  
      KI.l = 5
  ElseIf OM.l  = 0 And MM.l = 1 And UL.l = 1  
      KI.l = 2
    
   
  ; OR MR UR
  ElseIf ORR.l = 1 And MR.l = 1 And UR.l = 0
      KI.l = 9
  ElseIf ORR.l = 1 And MR.l = 0 And UR.l = 1
      KI.l = 6
  ElseIf ORR.l = 0 And MR.l = 1 And UR.l = 1
      KI.l = 3
  
  
      
  Else
  
  ; Gegnerabfrage
  ; OR MM UL
  If     ORR.l = 2 And MM.l = 2 And UL.l = 0
      KI.l = 7
  ElseIf ORR.l = 2 And MM.l = 0 And UL.l = 2
      KI.l = 5
  ElseIf ORR.l = 0 And MM.l = 2 And UL.l = 2
      KI.l = 3
 
 
  ; OL MM UR
  ElseIf OL.l  = 2 And MM.l = 2 And UR.l = 0
      KI.l = 9
  ElseIf OL.l  = 2 And MM.l = 0 And UR.l = 2
      KI.l = 5
  ElseIf OL.l  = 0 And MM.l = 2 And UR.l = 2
      KI.l = 1
  
  
  ; OL OM OR
  ElseIf OL.l  = 2 And OM.l = 2 And ORR.l = 0  
      KI.l = 3
  ElseIf OL.l  = 2 And OM.l = 0 And ORR.l = 2  
      KI.l = 2
  ElseIf OL.l  = 0 And OM.l = 2 And ORR.l = 2  
      KI.l = 1
    
    
  ; ML MM MR
  ElseIf ML.l  = 2 And MM.l = 2 And MR.l = 0 
      KI.l = 6
  ElseIf ML.l  = 2 And MM.l = 0 And MR.l = 2 
      KI.l = 5
  ElseIf ML.l  = 0 And MM.l = 2 And MR.l = 2 
      KI.l = 4   
        
    
  ; UL UM UR
  ElseIf UL.l  = 2 And UM.l = 2 And UR.l = 0  
      KI.l = 9
  ElseIf UL.l  = 2 And UM.l = 0 And UR.l = 2  
      KI.l = 8
  ElseIf UL.l  = 0 And UM.l = 2 And UR.l = 2  
      KI.l = 7
    
    
  ; OL ML UL
  ElseIf OL.l  = 2 And ML.l = 2 And UL.l = 0  
      KI.l = 7
  ElseIf OL.l  = 2 And ML.l = 0 And UL.l = 2  
      KI.l = 4
  ElseIf OL.l  = 0 And ML.l = 2 And UL.l = 2  
      KI.l = 1
    
    
  ; OM MM UM
  ElseIf OM.l  = 2 And MM.l = 2 And UM.l = 0  
      KI.l = 8
  ElseIf OM.l  = 2 And MM.l = 0 And UM.l = 2  
      KI.l = 5
  ElseIf OM.l  = 0 And MM.l = 2 And UM.l = 2  
      KI.l = 2
    
   
  ; OR MR UR
  ElseIf ORR.l = 2 And MR.l = 2 And UR.l = 0
      KI.l = 9
  ElseIf ORR.l = 2 And MR.l = 0 And UR.l = 2
      KI.l = 6
  ElseIf ORR.l = 0 And MR.l = 2 And UR.l = 2
      KI.l = 3

  Else 
    KI.l = Random(8)+1
  EndIf
  EndIf
    If KI.l = 1
      If OL.l = 0
        DisableGadget(#OL, 1)
        SetGadgetText(#OL,"O")
        OL.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 2
      If OM.l = 0
        DisableGadget(#OM, 1)
        SetGadgetText(#OM,"O")
        OM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 3
      If ORR.l = 0
        DisableGadget(#OR, 1)
        SetGadgetText(#OR,"O")
        ORR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 4
      If ML.l = 0
        DisableGadget(#ML, 1)
        SetGadgetText(#ML,"O")
        ML.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 5
      If MM.l = 0
        DisableGadget(#MM, 1)
        SetGadgetText(#MM,"O")
        MM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 6
      If MR.l = 0
        DisableGadget(#MR, 1)
        SetGadgetText(#MR,"O")
        MR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 7
      If UL.l = 0
        DisableGadget(#UL, 1)
        SetGadgetText(#UL,"O")
        UL.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 8
      If UM.l = 0
        DisableGadget(#UM, 1)
        SetGadgetText(#UM,"O")
        UM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 9
      If UR.l = 0
        DisableGadget(#UR, 1)
        SetGadgetText(#UR,"O")
        UR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    EndIf
EndIf
  
  
     
   
  If Event = #PB_EventCloseWindow 
    Quit = 1 
  ElseIf Event = #PB_Event_Gadget 
    
    Select EventGadgetID()
    
      Case #OL
        DisableGadget(#OL, 1)
        If     Pl.l = 0
          SetGadgetText(#OL,"X")
          OL.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OL,"O")
          OL.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #OM
        DisableGadget(#OM, 1)
        If     Pl.l = 0
          SetGadgetText(#OM,"X")
          OM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OM,"O")
          OM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #OR
        DisableGadget(#OR, 1)
        If     Pl.l = 0
          SetGadgetText(#OR,"X")
          ORR.l = 2
           Pl.l = 1
           SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OR,"O")
          ORR.l = 1
           Pl.l = 0
           SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #ML
        DisableGadget(#ML, 1)
        If     Pl.l = 0
          SetGadgetText(#ML,"X")
          ML.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#ML,"O")
          ML.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf

      Case #MM
        DisableGadget(#MM, 1)
        If Pl.l = 0
          SetGadgetText(#MM,"X")
          MM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#MM,"O")
          MM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #MR
        DisableGadget(#MR, 1)
        If Pl.l = 0
          SetGadgetText(#MR,"X")
          MR.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#MR,"O")
          MR.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #UL
        DisableGadget(#UL, 1)
        If Pl.l = 0
          SetGadgetText(#UL,"X")
          UL.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UL,"O")
          UL.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #UM
        DisableGadget(#UM, 1)
        If Pl.l = 0
          SetGadgetText(#UM,"X")
          UM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UM,"O")
          UM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
       
      Case #UR
        DisableGadget(#UR, 1)
        If Pl.l = 0
          SetGadgetText(#UR,"X")
          UR.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UR,"O")
          UR.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #Spielende
        End
        
      Case #Neustart
        DisableGadget(#OL,0) : SetGadgetText(#OL,"") :  OL.l = 0
        DisableGadget(#OM,0) : SetGadgetText(#OM,"") :  OM.l = 0
        DisableGadget(#OR,0) : SetGadgetText(#OR,"") : ORR.l = 0
        DisableGadget(#ML,0) : SetGadgetText(#ML,"") :  ML.l = 0
        DisableGadget(#MM,0) : SetGadgetText(#MM,"") :  MM.l = 0
        DisableGadget(#MR,0) : SetGadgetText(#MR,"") :  MR.l = 0
        DisableGadget(#UL,0) : SetGadgetText(#UL,"") :  UL.l = 0
        DisableGadget(#UM,0) : SetGadgetText(#UM,"") :  UM.l = 0
        DisableGadget(#UR,0) : SetGadgetText(#UR,"") :  UR.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
        Pl.l = 0
        
    EndSelect 
  EndIf 
  
Until Quit
8)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

8)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
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 »

@all:
Bei wem geht mein Code auch nicht?
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

ich habe es jetzt geschaft das man ihn nicht mehr fertig machen kann!!!
Also den KI besigen = unmöglich

Code: Alles auswählen

; PureBasic Visual Designer v3.80 build 1249


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #OL
  #OM
  #OR
  #ML
  #MM
  #MR
  #UL
  #UM
  #UR
  #NAchricht
  #Spielende
  #Neustart
EndEnumeration

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Arial", 24)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12)

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 190, 260,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Tic Tac Toe")
    If CreateGadgetList(WindowID())
      ButtonGadget(#OL, 10, 10, 50, 50, "")
      SetGadgetFont(#OL, FontID1)
      ButtonGadget(#OM, 70, 10, 50, 50, "")
      SetGadgetFont(#OM, FontID1)
      ButtonGadget(#OR, 130, 10, 50, 50, "")
      SetGadgetFont(#OR, FontID1)
      ButtonGadget(#ML, 10, 70, 50, 50, "")
      SetGadgetFont(#ML, FontID1)
      ButtonGadget(#MM, 70, 70, 50, 50, "")
      SetGadgetFont(#MM, FontID1)
      ButtonGadget(#MR, 130, 70, 50, 50, "")
      SetGadgetFont(#MR, FontID1)
      ButtonGadget(#UL, 10, 130, 50, 50, "")
      SetGadgetFont(#UL, FontID1)
      ButtonGadget(#UM, 70, 130, 50, 50, "")
      SetGadgetFont(#UM, FontID1)
      ButtonGadget(#UR, 130, 130, 50, 50, "")
      SetGadgetFont(#UR, FontID1)
      ButtonGadget(#Neustart, 10, 220, 80, 30, "Neues Spiel")
      ButtonGadget(#Spielende, 100, 220, 80, 30, "Spiel Beenden")
      TextGadget(#NAchricht, 10, 190, 170, 20, "", #PB_Text_Center)
      SetGadgetFont(#NAchricht, FontID2)
      
    EndIf
  EndIf
EndProcedure


Open_Window_0()

SetGadgetText(#Nachricht,"X ist dran")

Repeat 
  
  
  Event = WaitWindowEvent()
 
  If OL.l > 0 And OM.l > 0 And ORR.l > 0 And ML.l > 0 And MM.l > 0 And MR.l > 0 And UL.l > 0 And UM.l > 0 And UR.l > 0
    SetGadgetText(#Nachricht,"keiner hat gewonnen")
  EndIf
 
  
  If      OL.l = 1 And OM.l = 1 And ORR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ML.l = 1 And MM.l = 1 And MR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf UL.l = 1 And UM.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 1 And ML.l = 1 And UL.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OM.l = 1 And MM.l = 1 And UM.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 1 And MR.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 1 And MM.l = 1 And UR.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 1 And MM.l = 1 And UL.l = 1
    SetGadgetText(#NAchricht,"O gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0    
  EndIf
  
  If      OL.l = 2 And OM.l = 2 And ORR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ML.l = 2 And MM.l = 2 And MR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf UL.l = 2 And UM.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 2 And ML.l = 2 And UL.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OM.l = 2 And MM.l = 2 And UM.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 2 And MR.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf OL.l = 2 And MM.l = 2 And UR.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0
  ElseIf ORR.l= 2 And MM.l = 2 And UL.l = 2
    SetGadgetText(#NAchricht,"X gewinnt")    
    DisableGadget(#OL,1) : DisableGadget(#OM,1) : DisableGadget(#OR,1) : DisableGadget(#ML,1) : DisableGadget(#MM,1) : DisableGadget(#MR,1) : DisableGadget(#UL,1) : DisableGadget(#UM,1) : DisableGadget(#UR,1)
    Pl.l = 0    
  EndIf
  
  
  

If PL.l = 1
    
  ; Spielerabfrage
  ; OR MM UL
  If     ORR.l = 1 And MM.l = 1 And UL.l = 0
      KI.l = 7
  ElseIf ORR.l = 1 And MM.l = 0 And UL.l = 1
      KI.l = 5
  ElseIf ORR.l = 0 And MM.l = 1 And UL.l = 1
      KI.l = 3
 
 
  ; OL MM UR
  ElseIf OL.l  = 1 And MM.l = 1 And UR.l = 0
      KI.l = 9
  ElseIf OL.l  = 1 And MM.l = 0 And UR.l = 1
      KI.l = 5
  ElseIf OL.l  = 0 And MM.l = 1 And UR.l = 1
      KI.l = 1
  
  
  ; OL OM OR
  ElseIf OL.l  = 1 And OM.l = 1 And ORR.l = 0  
      KI.l = 3
  ElseIf OL.l  = 1 And OM.l = 0 And ORR.l = 1  
      KI.l = 2
  ElseIf OL.l  = 0 And OM.l = 1 And ORR.l = 1  
      KI.l = 1
    
    
  ; ML MM MR
  ElseIf ML.l  = 1 And MM.l = 1 And MR.l = 0 
      KI.l = 6
  ElseIf ML.l  = 1 And MM.l = 0 And MR.l = 1 
      KI.l = 5
  ElseIf ML.l  = 0 And MM.l = 1 And MR.l = 1 
      KI.l = 4   
        
    
  ; UL UM UR
  ElseIf UL.l  = 1 And UM.l = 1 And UR.l = 0  
      KI.l = 9
  ElseIf UL.l  = 1 And UM.l = 0 And UR.l = 1  
      KI.l = 8
  ElseIf UL.l  = 0 And UM.l = 1 And UR.l = 1  
      KI.l = 7
    
    
  ; OL ML UL
  ElseIf OL.l  = 1 And ML.l = 1 And UL.l = 0  
      KI.l = 7
  ElseIf OL.l  = 1 And ML.l = 0 And UL.l = 1  
      KI.l = 4
  ElseIf OL.l  = 0 And ML.l = 1 And UL.l = 1  
      KI.l = 1
    
    
  ; OM MM UM
  ElseIf OM.l  = 1 And MM.l = 1 And UM.l = 0  
      KI.l = 8
  ElseIf OM.l  = 1 And MM.l = 0 And UM.l = 1  
      KI.l = 5
  ElseIf OM.l  = 0 And MM.l = 1 And UM.l = 1  
      KI.l = 2
    
   
  ; OR MR UR
  ElseIf ORR.l = 1 And MR.l = 1 And UR.l = 0
      KI.l = 9
  ElseIf ORR.l = 1 And MR.l = 0 And UR.l = 1
      KI.l = 6
  ElseIf ORR.l = 0 And MR.l = 1 And UR.l = 1
      KI.l = 3
  
  
      
  Else
  
  ; Gegnerabfrage
  ; OR MM UL
  If     ORR.l = 2 And MM.l = 2 And UL.l = 0
      KI.l = 7
  ElseIf ORR.l = 2 And MM.l = 0 And UL.l = 2
      KI.l = 5
  ElseIf ORR.l = 0 And MM.l = 2 And UL.l = 2
      KI.l = 3
 
 
  ; OL MM UR
  ElseIf OL.l  = 2 And MM.l = 2 And UR.l = 0
      KI.l = 9
  ElseIf OL.l  = 2 And MM.l = 0 And UR.l = 2
      KI.l = 5
  ElseIf OL.l  = 0 And MM.l = 2 And UR.l = 2
      KI.l = 1
  
  
  ; OL OM OR
  ElseIf OL.l  = 2 And OM.l = 2 And ORR.l = 0  
      KI.l = 3
  ElseIf OL.l  = 2 And OM.l = 0 And ORR.l = 2  
      KI.l = 2
  ElseIf OL.l  = 0 And OM.l = 2 And ORR.l = 2  
      KI.l = 1
    
    
  ; ML MM MR
  ElseIf ML.l  = 2 And MM.l = 2 And MR.l = 0 
      KI.l = 6
  ElseIf ML.l  = 2 And MM.l = 0 And MR.l = 2 
      KI.l = 5
  ElseIf ML.l  = 0 And MM.l = 2 And MR.l = 2 
      KI.l = 4   
        
    
  ; UL UM UR
  ElseIf UL.l  = 2 And UM.l = 2 And UR.l = 0  
      KI.l = 9
  ElseIf UL.l  = 2 And UM.l = 0 And UR.l = 2  
      KI.l = 8
  ElseIf UL.l  = 0 And UM.l = 2 And UR.l = 2  
      KI.l = 7
    
    
  ; OL ML UL
  ElseIf OL.l  = 2 And ML.l = 2 And UL.l = 0  
      KI.l = 7
  ElseIf OL.l  = 2 And ML.l = 0 And UL.l = 2  
      KI.l = 4
  ElseIf OL.l  = 0 And ML.l = 2 And UL.l = 2  
      KI.l = 1
    
    
  ; OM MM UM
  ElseIf OM.l  = 2 And MM.l = 2 And UM.l = 0  
      KI.l = 8
  ElseIf OM.l  = 2 And MM.l = 0 And UM.l = 2  
      KI.l = 5
  ElseIf OM.l  = 0 And MM.l = 2 And UM.l = 2  
      KI.l = 2
    
   
  ; OR MR UR
  ElseIf ORR.l = 2 And MR.l = 2 And UR.l = 0
      KI.l = 9
  ElseIf ORR.l = 2 And MR.l = 0 And UR.l = 2
      KI.l = 6
  ElseIf ORR.l = 0 And MR.l = 2 And UR.l = 2
      KI.l = 3
      
      
  ; extra
  ElseIf OL.l  = 2 And MM.l = 0 And UR.l = 0 And OM.l = 0
      KI.l = 2
  ElseIf ORR.l = 2 And MM.l = 0 And UL.l = 0 And MR.l = 0
      KI.l = 6
  ElseIf UL.l  = 2 And MM.l = 0 And ORR.l= 0 And ML.l = 0
      KI.l = 4
  ElseIf UR.l  = 2 And MM.l = 0 And UL.l = 0 And UM.l = 0
      KI.l = 8
      
      
  ; extra 2
  ElseIf OM.l  = 2 And MM.l = 0 And UM.l = 0
      KI.l = 5
  ElseIf ML.l  = 2 And MM.l = 0 And MR.l = 0
      KI.l = 5
  ElseIf UM.l  = 2 And MM.l = 0 And OM.l = 0
      KI.l = 5
  ElseIf MR.l  = 2 And MM.l = 0 And ML.l = 0
      KI.l = 5

  

  Else 
    KI.l = Random(8)+1
  EndIf
  EndIf
    If KI.l = 1
      If OL.l = 0
        DisableGadget(#OL, 1)
        SetGadgetText(#OL,"O")
        OL.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 2
      If OM.l = 0
        DisableGadget(#OM, 1)
        SetGadgetText(#OM,"O")
        OM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 3
      If ORR.l = 0
        DisableGadget(#OR, 1)
        SetGadgetText(#OR,"O")
        ORR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 4
      If ML.l = 0
        DisableGadget(#ML, 1)
        SetGadgetText(#ML,"O")
        ML.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 5
      If MM.l = 0
        DisableGadget(#MM, 1)
        SetGadgetText(#MM,"O")
        MM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 6
      If MR.l = 0
        DisableGadget(#MR, 1)
        SetGadgetText(#MR,"O")
        MR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 7
      If UL.l = 0
        DisableGadget(#UL, 1)
        SetGadgetText(#UL,"O")
        UL.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 8
      If UM.l = 0
        DisableGadget(#UM, 1)
        SetGadgetText(#UM,"O")
        UM.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    ElseIf KI.l = 9
      If UR.l = 0
        DisableGadget(#UR, 1)
        SetGadgetText(#UR,"O")
        UR.l = 1
        Pl.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
      EndIf
    EndIf
EndIf
  
  
     
   
  If Event = #PB_EventCloseWindow 
    Quit = 1 
  ElseIf Event = #PB_Event_Gadget 
    
    Select EventGadgetID()
    
      Case #OL
        DisableGadget(#OL, 1)
        If     Pl.l = 0
          SetGadgetText(#OL,"X")
          OL.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OL,"O")
          OL.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #OM
        DisableGadget(#OM, 1)
        If     Pl.l = 0
          SetGadgetText(#OM,"X")
          OM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OM,"O")
          OM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #OR
        DisableGadget(#OR, 1)
        If     Pl.l = 0
          SetGadgetText(#OR,"X")
          ORR.l = 2
           Pl.l = 1
           SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#OR,"O")
          ORR.l = 1
           Pl.l = 0
           SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #ML
        DisableGadget(#ML, 1)
        If     Pl.l = 0
          SetGadgetText(#ML,"X")
          ML.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#ML,"O")
          ML.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf

      Case #MM
        DisableGadget(#MM, 1)
        If Pl.l = 0
          SetGadgetText(#MM,"X")
          MM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#MM,"O")
          MM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #MR
        DisableGadget(#MR, 1)
        If Pl.l = 0
          SetGadgetText(#MR,"X")
          MR.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#MR,"O")
          MR.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #UL
        DisableGadget(#UL, 1)
        If Pl.l = 0
          SetGadgetText(#UL,"X")
          UL.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UL,"O")
          UL.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
      
      Case #UM
        DisableGadget(#UM, 1)
        If Pl.l = 0
          SetGadgetText(#UM,"X")
          UM.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UM,"O")
          UM.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
       
      Case #UR
        DisableGadget(#UR, 1)
        If Pl.l = 0
          SetGadgetText(#UR,"X")
          UR.l = 2
          Pl.l = 1
          SetGadgetText(#Nachricht,"O ist dran")
        ElseIf PL.l = 1
          SetGadgetText(#UR,"O")
          UR.l = 1
          Pl.l = 0
          SetGadgetText(#Nachricht,"X ist dran")
        EndIf
        
      Case #Spielende
        End
        
      Case #Neustart
        DisableGadget(#OL,0) : SetGadgetText(#OL,"") :  OL.l = 0
        DisableGadget(#OM,0) : SetGadgetText(#OM,"") :  OM.l = 0
        DisableGadget(#OR,0) : SetGadgetText(#OR,"") : ORR.l = 0
        DisableGadget(#ML,0) : SetGadgetText(#ML,"") :  ML.l = 0
        DisableGadget(#MM,0) : SetGadgetText(#MM,"") :  MM.l = 0
        DisableGadget(#MR,0) : SetGadgetText(#MR,"") :  MR.l = 0
        DisableGadget(#UL,0) : SetGadgetText(#UL,"") :  UL.l = 0
        DisableGadget(#UM,0) : SetGadgetText(#UM,"") :  UM.l = 0
        DisableGadget(#UR,0) : SetGadgetText(#UR,"") :  UR.l = 0
        SetGadgetText(#Nachricht,"X ist dran")
        Pl.l = 0
        
    EndSelect 
  EndIf 
  
Until Quit

Ich weis dass es dann auch irgendwie langweilig wird!!!
Antworten