Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Morpion Graphique (Avec bug)
Auteur Message
Répondre en citant
Message Morpion Graphique (Avec bug) 
Bonjour ,voici Morpion 2 mais avec des Bug . Que je n'ai pas réussi a corriger .
Je vous laisse essayer:

Code:


@Echo Off
If not exist Sauvegardes Md Sauvegardes
Cd Sauvegardes
timeout/? || Call :Timeout
Call :Info
 
:Reset
 
   Cls
   Color 9E
   Set Pion=X
   Set nbT=0
   For %%A in (11,12,13,21,22,23,31,32,33) do Set C%%A=ú
   
:Menu
   
   Set ToucheP=
   Set choix=1
   Set nbBMax=3
   Set Echap=1
   Set Barre=30
   Set Mod=2
   Call :Bouton %Echap%%Mod%%Barre% %choix% %nbBMax%
   
   :Gui1
   
   Cls
   Echo %B1%
   Echo %B2% Jouer une nouvelle partie    %B2%
   Echo %B3%
   Echo %B4% Jouer une partie enregistree %B4%
   Echo %B5%
   Echo %B6% Quitter                      %B6%
   Echo %B7%
   Call :PosM %Echap%%Mod%%Barre% %choix% %nbBMax% choix ToucheP
   If not defined ToucheP Goto Gui1
   Set Choix=%ToucheP%
   If %choix%==1 Goto com
   If %choix%==2 (
      If not exist *.Sauv (
         cls
         Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
         Echo º Aucune sauvegard existante !! º
         Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
         Pause>Nul
         goto Menu
      )
      Goto lecture
   )
   If %choix%==3 Exit
   Goto menu
   
:com
   
   Set ToucheP=
   Set choix=1
   Set nbBMax=2
   Set Echap=1
   Set Barre=5
   Set Mod=2
   Call :Bouton %Echap%%Mod%%Barre% %choix% %nbBMax%
   
   :Gui2
   
   Cls
   Echo Voulez vous commencer en premier:
   Echo            %B1%
   Echo            %B2% Oui %B2%
   Echo            %B3%
   Echo            %B4% Non %B4%
   Echo            %B5%
   Call :PosM %Echap%%Mod%%Barre% %choix% %nbBMax% choix ToucheP
   If not defined ToucheP Goto Gui2
   Set Choix=%ToucheP%
   If %choix%==1 Goto affiche
   If %choix%==2 (
      Set/A nbT+=1
      Call :Supert
      Goto IA
   )
   Goto com
 
:affiche
   
   Call :Supert
   
   :comsauv
   
      Setlocal Enabledelayedexpansion
      Set ToucheP=
      Set choix=1
      Set nbBMax=10
      Set SpecialeEchap=1
      Set CaseEchap=10
      Set Echap=2
      Set Barre=1
      Set Mod=1
      Call :Bouton %Echap%%Mod%%Barre% %choix% %nbBMax%
   
   :Gui3
   
   Call :SPEchap %SpecialeEchap%%Mod%%CaseEchap%
   cls
   Set choix=
   Echo    %B1% º %B4% º %B7%
   Echo  A %B2%%C11%%B2% º %B5%%C12%%B5% º %B8%%C13%%B8%
   Echo    %B3% º %B6% º %B9%
   Echo   ÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍ
   Echo    %B10% º %B13% º %B16%
   Echo  B %B11%%C21%%B11% º %B14%%C22%%B14% º %B17%%C23%%B17%
   Echo    %B12% º %B15% º %B18%
   Echo   ÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍ
   Echo    %B19% º %B22% º %B25%
   Echo  C %B20%%C31%%B20% º %B23%%C32%%B23% º %B26%%C33%%B26%
   Echo    %B21% º %B24% º %B27%
   Echo     %B28%
   Echo     %B29%X%B29% SAUVER
   Echo     %B30%
   pause
   Call :PosM %Echap%%Mod%%Barre% %choix% %nbBMax% choix ToucheP
   If not defined ToucheP Goto Gui3
   Set choix=%choix:1=C11%
   Set choix=%choix:2=C12%
   Set choix=%choix:3=C13%
   Set choix=%choix:4=C21%
   Set choix=%choix:5=C22%
   Set choix=%choix:6=C23%
   Set choix=%choix:7=C31%
   Set choix=%choix:8=C32%
   Set choix=%choix:9=C33%
   If %choix%==10 Goto sauve
   Setlocal Enabledelayedexpansion
   If not !%choix%!==ú Goto affiche
   Setlocal Disabledelayedexpansion
   Set %choix%=O
   Call :Supert
   Set/A nbT+=2
   
:IA
   
   :AttaqueDefenseSimple
   
   If %C22%==ú (
      Set C22=X
      Goto affiche
   )
   Setlocal Enabledelayedexpansion
   For %%C in (X,O) do (
      For %%B in (1,2,3) do (
         If !H%%B!==%%C%%Cú (
            Set C%%B3=X
            Goto affiche
         )
      )
      For %%B in (1,2,3) do (
         If !H%%B!==ú%%C%%C (
            Set C%%B1=X
            Goto affiche
         )
      )
      For %%B in (1,2,3) do (
         If !H%%B!==%%Cú%%C (
            Set C%%B2=X
            Goto affiche
         )
      )
      For %%B in (1,2,3) do (
         If !V%%B!==%%C%%Cú (
            Set C3%%B=X
            Goto affiche
         )
      )
      For %%B in (1,2,3) do (
         If !V%%B!==ú%%C%%C (
            Set C1%%B=X
            Goto affiche
         )
      )
      For %%B in (1,2,3) do (
         If !V%%B!==%%Cú%%C (
            Set C2%%B=X
            Goto affiche
         )
      )
      If %D1%==%%C%%Cú (
         Set C33=X
         Goto affiche
      )
     
      If %D1%==ú%%C%%C (
         Set C11=X
         Goto affiche
      )
     
      If %D2%==%%C%%Cú (
         Set C31=X
         Goto affiche
      )
     
      If %D2%==ú%%C%%C (
         Set C13=X
         Goto affiche
      )
     
      For %%B in (%D1%,%D2%) do (
         If %%B==%%Cú%%C (
            Set C22=X
            Goto affiche
         )
      )
   )
   Setlocal Disabledelayedexpansion
   
   :AttaqueDefenseComplexe
   
         For %%A in (caseL,caseC) do (
            For %%B in (1,2,3) do (
               Set %%A%%B=0
            )
         )
         Set caseD1=0
         Set caseD2=0
         For %%A in (%C11%,%C12%,%C13%) do (
            If %%A==%Pion% Set/A caseL1+=2
            If %%A==ú Set/A caseL1+=1
         )
         For %%A in (%C21%,%C22%,%C23%) do (
            If %%A==%Pion% Set/A caseL2+=2
            If %%A==ú Set/A caseL2+=1
         )
         For %%A in (%C31%,%C32%,%C33%) do (
            If %%A==%Pion% Set/A caseL3+=2
            If %%A==ú Set/A caseL3+=1
         )   
         For %%A in (%C11%,%C21%,%C31%) do (
            If %%A==%Pion% Set/A caseC1+=2
            If %%A==ú Set/A caseC1+=1
         )
         For %%A in (%C12%,%C22%,%C32%) do (
            If %%A==%Pion% Set/A caseC2+=2
            If %%A==ú Set/A caseC2+=1
         )
         For %%A in (%C13%,%C23%,%C33%) do (
            If %%A==%Pion% Set/A caseC3+=2
            If %%A==ú Set/A caseC3+=1
         )
         For %%A in (%C11%,%C22%,%C33%) do (
            If %%A==%Pion% Set/A caseD1+=2
            If %%A==ú Set/A caseD1+=1
         )
         For %%A in (%C13%,%C22%,%C31%) do (
            If %%A==%Pion% Set/A caseD2+=2
            If %%A==ú Set/A caseD2+=1
         )
         
      :1
     
         If %caseL1%%caseL3%%caseC1%%caseC3%==4444 (
            If %Pion%==O Goto aleaB
            If %Pion%==X Goto aleaD
         )
         
      :2
     
         :Test1
         
            If not %C22%==ú (
               If %caseL1%%caseL2%%caseC1%%caseC2%==4444 If %C11%%C22%==%Pion%%Pion% (
                  Call :alea2 C13 C31
                  Goto affiche
               )
               If %caseL1%%caseL2%%caseC2%%caseC3%==4444 If %C13%%C22%==%Pion%%Pion% (
                  Call :alea2 C11 C33
                  Goto affiche
               )
               If %caseL2%%caseL3%%caseC1%%caseC2%==4444 If %C31%%C22%==%Pion%%Pion% (
                  Call :alea2 C11 C33
                  Goto affiche
               )
               If %caseL2%%caseL3%%caseC2%%caseC3%==4444 If %C33%%C22%==%Pion%%Pion% (
                  Call :alea2 C13 C31
                  Goto affiche
               )
            )
           
         :Test2
         
            If %caseL1%%caseL2%%caseC1%%caseC2%==4444 If %C21%%C12%==XX (
               Call :alea2 C13 C31
               Goto affiche
            )
            If %caseL1%%caseL2%%caseC2%%caseC3%==4444 If %C12%%C23%==XX (
               Call :alea2 C11 C33
               Goto affiche
            )
            If %caseL2%%caseL3%%caseC1%%caseC2%==4444 If %C21%%C32%==XX (
               Call :alea2 C11 C33
               Goto affiche
            )
            If %caseL2%%caseL3%%caseC2%%caseC3%==4444 If %C32%%C23%==XX (
               Call :alea2 C13 C31
               Goto affiche
            )
           
      :3
     
         Setlocal Enabledelayedexpansion
         For %%A in (1,2,3) do (
            For %%B in (1,2,3) do (
               If !caseL%%A!!caseC%%B!==44 If !C%%A%%B!==ú (
                  Set C%%A%%B=X
                  Goto affiche
               )
            )
         )
      Setlocal Disabledelayedexpansion
      If %Pion%==X (
         Set Pion=O
         Goto AttaqueDefenseComplexe
      )
      Set nbA=0
      For %%A in (%C11%,%C13%,%C31%,%C33%) do If %%A==ú Set/A nbA+=1
      If not %nbA%==0 (
      Goto aleaD
      ) else (
      Goto aleaB
      )
     
   :alea2
   
      Call :alea 2 alea2
      If %alea2%==1 set %~1=X
      If %alea2%==2 set %~2=X
      Goto :eof
     
   :aleaD
     
      Call :alea 5 aleaD
      If %aleaD%==1 If %C11%==ú (
      Set C11=X
      Goto affiche
      )
      If %aleaD%==2 If %C13%==ú (
      Set C13=X
      Goto affiche
      )
      If %aleaD%==3 If %C22%==ú (
      Set C22=X
      Goto affiche
      )
      If %aleaD%==4 If %C31%==ú (
      Set C31=X
      Goto affiche
      )
      If %aleaD%==5 If %C33%==ú (
      Set C33=X
      Goto affiche
      )
      Goto aleaD
   
   :aleaB
     
      Call :alea 4 aleaB
      If %aleaB%==1 If %C12%==ú (
      Set C12=X
      Goto affiche
      )
      If %aleaB%==2 If %C21%==ú (
      Set C21=X
      Goto affiche
      )
      If %aleaB%==3 If %C23%==ú (
      Set C23=X
      Goto affiche
      )
      If %aleaB%==4 If %C32%==ú (
      Set C32=X
      Goto affiche
      )
      Goto aleaB
 
:alea
 
   Set aleaNB=0
   Set Max=%1
   
   :Random
   
      If %aleaNB%==10 (
         Set %~2=%aleaT%
         Goto :eof
      )
      Set/a aleaNB+=1
      Set/A aleaT=1+%Random%*%Max%/32767
      Goto Random
 
:fin
   
   Cls
   If %1==G Color 9A
   If %1==P Color 9C
   If %1==M Color 98
   Echo     1     2     3     Tour: %nbT%
   Echo        º     º
   Echo  A  %C11%  º  %C12%  º  %C13%
   Echo        º     º
   Echo   ÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍ
   Echo  B  %C21%  º  %C22%  º  %C23%
   Echo        º     º
   Echo   ÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍ
   Echo        º     º
   Echo  C  %C31%  º  %C32%  º  %C33%
   Echo        º     º
   Echo.
   Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍ»
   If %1==G Echo º TU AS GAGNE º
   If %1==P Echo º TU AS PERDU º
   If %1==M Echo º  MATCH Nul  º
   Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍͼ
   Pause>Nul
   Goto Reset
   
:sauve
 
   Cls
   Set nom=
   Echo Sauvegarde existantes :
   Echo.
   If exist *.Sauv Dir /B *.Sauv
   If not exist *.Sauv Echo Aucune sauvegard cree !!
   Echo.
   Set/P nom=Ecriver le nom de votre sauvegarde:
   If not defined nom goto sauve
   Set nom=%nom%.Sauv
   If not exist %nom% Goto crypto
   :ED
   Echo Cette Sauvegarde existe deja .
   Echo Voulez-vous la remplacer: - Oui = 1
   Echo                           - Non = 2
   Set/P choix=Choix :
   If not defined choix Goto ED
   If %choix%==1 Goto crypto
   If %choix%==2 Goto sauve
   Goto ED
   
   :crypto
     
      Setlocal Disabledelayedexpansion
      Set crypto=
      For %%A in (%C11%,%C12%,%C13%,%C21%,%C22%,%C23%,%C31%,%C32%,%C33%) do (
         If %%A==O Call :aleaJ crypto
         If %%A==X Call :aleaO crypto
         If %%A==ú Call :aleaV crypto
      )
      Echo %crypto%%nbT%>%nom%
      Cls
      Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
      Echo º  Partie sauvegard‚e !! º
      Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
      Pause>Nul
      Goto Reset
     
   :aleaJ
     
      ::Nombre Paire
      Call :alea 9 aleaJ
      Set/A modulo=%aleaJ% %% 2
      If not %modulo%==0 Goto aleaJ
      Set crypto=%crypto%%aleaJ%
      Set %~1=%crypto%
      Goto :eof
     
   :aleaO
     
      ::Nombre Inpaire
      Call :alea 8 aleaO
      Set/A modulo=%aleaO% %% 2
      If %modulo%==0 Goto aleaO
      Set crypto=%crypto%%aleaO%
      Set %~1=%crypto%
      Goto :eof
   
   :aleaV
     
      ::Lettres
      Call :alea 5 aleaV
      Set aleaV=%aleaV:1=Z%
      Set aleaV=%aleaV:2=X%
      Set aleaV=%aleaV:3=W%
      Set aleaV=%aleaV:4=Y%
      Set aleaV=%aleaV:5=F%
      Set crypto=%crypto%%aleaV%
      Set %~1=%crypto%
      Goto :eof
     
:lecture
 
   Setlocal Disabledelayedexpansion
   Cls
   set nom=
   Echo Sauvegarde existantes :
   Echo.
   If exist *.Sauv Dir /B *.Sauv
   Echo.
   Set/P nom=Ecriver le nom de la sauvegarde a charger:
   If not defined nom goto lecture
   Set nom=%nom%.Sauv
   If not exist %nom% goto lecture
   Set/P sauv=<%nom%
   Set nbT=%sauv:~-1%
   Set nbL=1
   Set nbC=1
   
   :BF
     
      Set/A tB=%sauv:~0,1%
      If %tB%==0 (
         Set tBF=ú
         Goto finBF
      )
      Set/A tB=%sauv:~0,1%%%2
      If %tB%==0 Set tBF=O
      If not %tB%==0 Set tBF=X
     
      :finBF
     
         Set C%nbC%%nbL%=%tBF%
         Set sauv=%sauv:~1%
         If %nbL%%nbC%==33 Goto comsauv
         If %nbL%==3 (
            Set nbL=0
            Set/A nbC+=1
         )
         Set/A nbL+=1
         Set tBF=%sauv:~0,1%
     
         Goto BF
 
:Supert
   
   Set H1=%C11%%C12%%C13%
   Set H2=%C21%%C22%%C23%
   Set H3=%C31%%C32%%C33%
   Set V1=%C11%%C21%%C31%
   Set V2=%C12%%C22%%C32%
   Set V3=%C13%%C23%%C33%
   Set D1=%C11%%C22%%C33%
   Set D2=%C13%%C22%%C31%
   For %%A in (%H1%,%H2%,%H3%,%V1%,%V2%,%V3%,%D1%,%D2%) do (
      If %%A==XXX Call :fin P
      If %%A==OOO Call :fin G
   )
   If not %C11%==ú If not %C12%==ú If not %C13%==ú (
      If not %C21%==ú If not %C22%==ú If not %C23%==ú (
         If not %C31%==ú If not %C32%==ú If not %C33%==ú (
            set nbT=9
            Call :fin M
         )
      )
   )
   Goto :eof
 
:PosM
   
   Set P1=%1
   Set B=%2
   
   :BouclePos
   
      Timeout /T -1 >nul
      Timeout /T 1 > temp.ini
      For /F "delims=" %%A in ('type temp.ini') do Set "temp1=%%A"
      If not %temp1:~-1%==0 (
         Set %~5=%B%
         Goto :eof
      )
      If %B%==%3 (
         Set B=1
      ) else (
         Set/a B+=1
      )
      Call :Bouton %P1% %B% %3
      Set %~4=%B%
      Goto :eof
   
   
:Bouton
   
   Set nbB=%1
   Set P3=%nbB:~0,1%
   Set P4=%nbB:~1,1%
   Set P5=%nbB:~2%
   Call :Mod%P4% %3 %2 P1 P2
   If %P3%==1 (
      Set "P3= > nul & Echo."
   ) Else (
      Set "P3=   "
   )
   Set nbB=1
   If %P4%==1 (
      Set BV1=1
      Set BV2=3
   ) Else (
      Set BV1=2
      Set BV2=2
   )
   Goto BoucleVide1
   
   :BoucleVide1
   
      Set "B%nbB%=%P3%"
      If %nbB% GEQ %P2% (
         Set nbB=2
         goto BoucleVide2
      )
      Set/A nbB+=2
      Set "B%nbB%=%P3%"
      Set/A nbB+=%BV1%
      Goto BoucleVide1
   
   :BoucleVide2
     
      Set "B%nbB%= "
      If %nbB% GEQ %P2% (
         Set nbB=1
         Set BV1=1
         Set Bar=
         goto BoucleBar
      )
      Set/A nbB+=%BV2%
      Goto BoucleVide2
     
   :BoucleBar
   
      Set Bar=%Bar%Í

      If %nbB%==%P5% goto FinBar
      Set/A nbB+=1
      Goto BoucleBar
     
   :FinBar
   
   Set B%P1%=É%Bar%»
   Set/A P1+=1
   Set B%P1%=º
   Set/A P1+=1
   Set B%P1%=È%Bar%¼
   Goto :eof
   
   :Mod1
   
      Set nbB=%1
      Set/A %~3=%2*3-2
      Set/A %~4=%1*3
      Goto :eof
     
   :Mod2
   
      Set nbB=%1
      Set/A %~3=(%2-1)*2+1
      Set/A %~4=(%1*2)+1
      Goto :eof
     
   :SPEchap
   
      Set P1=%1
      Call :Mod%P1:~1,1% %P1:~2% %P1:~2% P2
      If defined B%P2% (
         If "!B%P2%:~0,1!"=="É" Goto :eof
      )
      If %P1:~0,1%==1 (
         Set "P3= Rien > nul & Echo."
      ) Else (
         Set "P3=   "
      )
      Set "B%P2%=%P3%"
      Set/A P2+=2
      Set "B%P2%=%P3%"
      Goto :eof
 
:Timeout
 
   Cls
   Echo La commande "Timeout" n'est pas disponible sur votre version de windows !!
   Echo Mais vous pouvez essaye de la telecharger et de la placer dans "%CD%\" !!
   Pause>nul
   exit
 
:Info
 
   Cls
   Echo Pour: - Deplacer le curseur, appuyez sur une touche et attendez 1 seconde
   Echo       - Valider, appuyez sur deux touches avec moins 1 seconde d'intervalle
   Pause>nul
   Goto :eof





Dernière édition par LG le Mar 31 Juil 2012 - 09:01; édité 3 fois

______________________________________________________
Clickez sur Saturne pour voir mes tutoriels et sur la Terre pour voir mon Forum:


Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Morpion Graphique (Avec bug) 
Hello !

De fait il s'agissait d'un bug de notre part. Il a été fixé Very Happy Merci de nous avoir signalé le bug.
je m'excuse du désagrément causé.

Sinon c'est un jeu très sympa, bravo Okay

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Morpion Graphique (Avec bug) 
Quelqu'un pourrait-il m'aidé à enlevé les bug ?!?




______________________________________________________
Clickez sur Saturne pour voir mes tutoriels et sur la Terre pour voir mon Forum:


Skype
Message Morpion Graphique (Avec bug) 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch