Page 1 sur 1

Tic Tac toe

Publié : dim. 26/oct./2014 0:24
par venom
Bonsoir,

voilà je me suis amusé a codé un petit Tic Tac Toe très basic (pas de menu etc..) il est jouable a 2 avec la même souris. quand je disais que c’était basique
La conception est simple car le jeu est basé sur des ButtonImageGadget et un fichier preference rien de plus.

Screen:
Image

Lien vers le zip

Code source:

Code : Tout sélectionner

Enumeration   
  #Window_0
EndEnumeration

Enumeration   
  #Font_0
  
  #Vide
  #Cercle
  #Croix
  
  #Button_1
  #Button_2
  #Button_3
  #Button_4
  #Button_5
  #Button_6
  #Button_7
  #Button_8
  #Button_9
  
  #Text_Joueur
EndEnumeration

UsePNGImageDecoder()
Dossier$ = ""
DossierImages$ = "images\"
LoadFont(#Font_0, "Arial", 20, #PB_Font_Bold)

Procedure CreatePref()
If CreatePreferences(Dossier$+"TicTacToe.pref", #PB_Preference_NoSpace)
  For a = 1 To 9
   WritePreferenceString(Str(a), "0") 
  Next 
   WritePreferenceString("joueur", "1") 
  ClosePreferences()
EndIf 
EndProcedure
CreatePref()

  If OpenWindow(#Window_0, 0, 0, 300, 350, "Tic Tac Toe", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
      SetWindowColor(#Window_0, RGB(0, 0, 0))
    
      LoadImage(#Vide, DossierImages$+"vide.png",  #PB_Sprite_AlphaBlending)
      LoadImage(#Cercle, DossierImages$+"rond.png",  #PB_Sprite_AlphaBlending)
      LoadImage(#Croix, DossierImages$+"croix.png",  #PB_Sprite_AlphaBlending)
      
      ButtonImageGadget(#Button_1, 0, 0, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      ButtonImageGadget(#Button_2, 100, 0, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      ButtonImageGadget(#Button_3, 200, 0, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      
      ButtonImageGadget(#Button_4, 0, 100, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      ButtonImageGadget(#Button_5, 100, 100, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      ButtonImageGadget(#Button_6, 200, 100, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      
      ButtonImageGadget(#Button_7, 0, 200, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      ButtonImageGadget(#Button_8, 100, 200, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      ButtonImageGadget(#Button_9, 200, 200, 100, 100, ImageID(#Vide), #PB_Button_Toggle)
      
      TextGadget(#Text_Joueur, 0, 310, 300, 50, "JOUEUR 1", #PB_Text_Center)
       SetGadgetColor(#Text_Joueur, #PB_Gadget_BackColor, RGB(0, 0, 0))
       SetGadgetColor(#Text_Joueur, #PB_Gadget_FrontColor , RGB(255, 255, 255))
      SetGadgetFont(#Text_Joueur, FontID(#Font_0))
       
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
          
;{ Tout ce qui concerne le bouton 1
        Case #Button_1 ; appuie sur le bouton
         If GetGadgetState(#Button_1) = 0 ; si le bouton = 0 alors il a déja etait cliquer
          SetGadgetState(#Button_1, 1) ; on lui remet donc l'identifiant 1
          MessageRequester("Erreur", "Case déjà prise", 0) ; on informe l'utilisateur que le bouton est deja pris
         Else ; si le bouton est vide
           OpenPreferences(Dossier$+"TicTacToe.pref") ; on ouvre le fichier pref
            If Val(ReadPreferenceString("joueur", "")) = 1 ; on regarde si c'est au tour du joueur n°1 si oui:
             SetGadgetAttribute(#Button_1, #PB_Button_Image, ImageID(#Croix)) ; on affiche la croix dans le BoutonImageGadget
              WritePreferenceString("1", "1") ; on modifie la ligne 1 du fichier pref pour dire que la case 1 est egale a la croix
              WritePreferenceString("joueur", "2") ; on modifie la ligne joueur pour dire que le prochain tour c'est au joueur 2
              SetGadgetText(#Text_Joueur, "JOUEUR 2") ; on modifie aussi le TextGadget pour indiquer que c'est au tour du joueur 2
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) = 3 Or Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("7", "")) = 3 Or Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("9", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf 

               
            ElseIf Val(ReadPreferenceString("joueur", "")) = 2 ; on regarde si c'est au tour du joueur n°2 si oui:
             SetGadgetAttribute(#Button_1, #PB_Button_Image, ImageID(#Cercle)) ; on affiche un cercle dans le BoutonImageGadget
              WritePreferenceString("1", "5") ; on modifie la ligne 1 du fichier pref pour dire que la case 1 est egale a la croix
              WritePreferenceString("joueur", "1") ; on modifie la ligne joueur pour dire que le prochain tour c'est au joueur 1
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) = 15 Or Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("7", "")) = 15 Or Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("9", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
             
               SetGadgetText(#Text_Joueur, "JOUEUR 1") ; on modifie aussi le TextGadget pour indiquer que c'est au tour du joueur 1
            EndIf 
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
             
           ClosePreferences() ; on ferme la lecture du fichier pref
         EndIf
;}
         
;{ Tout ce qui concerne le bouton 2
        Case #Button_2
         If GetGadgetState(#Button_2) = 0
          SetGadgetState(#Button_2, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_2, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("2", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) = 3 Or Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("8", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf 

            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_2, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("2", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) = 15 Or Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("8", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf 
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf
;}
         
;{  Tout ce qui concerne le bouton 3
        Case #Button_3
         If GetGadgetState(#Button_3) = 0
          SetGadgetState(#Button_3, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_3, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("3", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) = 3 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("7", "")) = 3 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("9", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf

            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_3, #PB_Button_Image, ImageID(#Cercle))  
              WritePreferenceString("3", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) = 15 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("7", "")) = 15 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("9", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf
;}
         
;{ Tout ce qui concerne le bouton 4
        Case #Button_4
         If GetGadgetState(#Button_4) = 0
          SetGadgetState(#Button_4, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_4, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("4", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("7", "")) = 3 Or Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf

            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_4, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("4", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("7", "")) = 15 Or Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf 
;}
         
;{ Tout ce qui concerne le bouton 5
        Case #Button_5
         If GetGadgetState(#Button_5) = 0
          SetGadgetState(#Button_5, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_5, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("5", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("9", "")) = 3 Or Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("8", "")) = 3 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("7", "")) = 3 Or Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
               
            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_5, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("5", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("9", "")) = 15 Or Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("8", "")) = 15 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("7", "")) = 15 Or Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf 
;}
         
;{ Tout ce qui concerne le bouton 6
        Case #Button_6
         If GetGadgetState(#Button_6) = 0
          SetGadgetState(#Button_6, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_6, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("6", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("9", "")) = 3 Or Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
 
            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_6, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("6", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("9", "")) = 15 Or Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf 
;}
         
;{ Tout ce qui concerne le bouton 7
        Case #Button_7
         If GetGadgetState(#Button_7) = 0
          SetGadgetState(#Button_7, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_7, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("7", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("7", "")) = 3 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("7", "")) = 3 Or Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf

            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_7, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("7", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("7", "")) = 15 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("7", "")) = 15 Or Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf 
;}
         
;{ Tout ce qui concerne le bouton 8
         
        Case #Button_8
         If GetGadgetState(#Button_8) = 0
          SetGadgetState(#Button_8, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_8, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("8", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 3 Or Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("8", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf

            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_8, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("8", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 15 Or Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("8", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
             
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf 
;}
         
;{ Tout ce qui concerne le bouton 9
        Case #Button_9
         If GetGadgetState(#Button_9) = 0
          SetGadgetState(#Button_9, 1)
          MessageRequester("Erreur", "Case déjà prise", 0)
         Else
           OpenPreferences(Dossier$+"TicTacToe.pref")
            If Val(ReadPreferenceString("joueur", "")) = 1
             SetGadgetAttribute(#Button_9, #PB_Button_Image, ImageID(#Croix))
              WritePreferenceString("9", "1") 
              WritePreferenceString("joueur", "2")
              SetGadgetText(#Text_Joueur, "JOUEUR 2")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("9", "")) = 3 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("9", "")) = 3 Or Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 3
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 1 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 SetGadgetText(#Text_Joueur, "JOUEUR 1")
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf

            ElseIf Val(ReadPreferenceString("joueur", "")) = 2
             SetGadgetAttribute(#Button_9, #PB_Button_Image, ImageID(#Cercle))
              WritePreferenceString("9", "5")
              WritePreferenceString("joueur", "1")
              
              ; verifie si il y a victoire
              If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("9", "")) = 15 Or Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("9", "")) = 15 Or Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 15
               reponseMsg = MessageRequester("VICTOIRE", "Bravo, le JOUEUR 2 gagne la partie. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf 
              EndIf
              
               SetGadgetText(#Text_Joueur, "JOUEUR 1")
            EndIf
            
            ; verifie si il y a nul
             If Val(ReadPreferenceString("1", "")) + Val(ReadPreferenceString("2", "")) + Val(ReadPreferenceString("3", "")) + Val(ReadPreferenceString("4", "")) + Val(ReadPreferenceString("5", "")) + Val(ReadPreferenceString("6", "")) + Val(ReadPreferenceString("7", "")) + Val(ReadPreferenceString("8", "")) + Val(ReadPreferenceString("9", "")) = 25
               reponseMsg = MessageRequester("NUL", "Match nul. Souhaitez vous faire une nouvelle partie ?", #PB_MessageRequester_YesNo)
               If reponseMsg = 6
                For ID = #Button_1 To #Button_9
                 SetGadgetAttribute(ID, #PB_Button_Image, ImageID(#Vide))
                 SetGadgetState(ID, 0)
                 CreatePref()
                Next 
               Else
                End 
               EndIf
             EndIf 
              
           ClosePreferences()
         EndIf 
;}
         
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
Bon amusement. :wink:





@++

Re: Tic Tac toe

Publié : dim. 26/oct./2014 7:28
par Lemaquis
merci venom de ton partage

Re: Tic Tac toe

Publié : dim. 26/oct./2014 9:06
par Micoute
Bonjour venom, pour un petit jeu très basique, je le trouve plutôt bien achevé, merci pour ce partage !

Re: Tic Tac toe

Publié : dim. 26/oct./2014 9:38
par kernadec
bonjour
Merci venon simple, efficace, petit mais tout d'un grand jeu d'enfants

Cordialement

Re: Tic Tac toe

Publié : dim. 26/oct./2014 11:15
par venom
Bonjour, merci pour vos retours. C'est que le jeu fonctionne bien chez vous :wink:

Oui il a était fait pour des petits. :D

Ps: je mettrais la source dans le 1er poste


@++

Re: Tic Tac toe

Publié : dim. 26/oct./2014 12:37
par Ar-S
Simple et sympa.
ça m'a donné envie de faire une version avec Canvas et surtout, de tester une petite IA.
ça m'a paru assez faisable mais je suis en train de voir que c'est tout de suite plus pêchu qu'on se le dit. Mixer sa théorie avec sa réflexion et ses connaissances en PB ça donne mal au crâne. :mrgreen: Mais je m'amuse bien.

Re: Tic Tac toe

Publié : dim. 26/oct./2014 14:20
par raven
bravo venom,
merci pour ton partage :wink:

Re: Tic Tac toe

Publié : lun. 27/oct./2014 10:50
par Kwai chang caine
Fonctionne nickel
Merci pour le partage 8)