Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Master Mind
Auteur Message
Répondre en citant
Message Master Mind 
Salut !

Voilà mon nouveau master mind ! Avec possibilité de sauvegardes !

Code:


@Echo off
Mode 59,30
Color 9E
Title Mastermind
Setlocal Enabledelayedexpansion

Set NombreCoupsMax=12
:: -1 = un nombre de coups infinit
 
:Menu

   Cls
   Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
   Echo º                            º
   Echo º         MASTERMIND         º
   Echo º                            º
   Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
   Echo.
   Echo  - Jouer une nouvelle partie    = 1
   Echo  - Jouer une partie enregistree = 2
   Echo  - Quitter                      = 3
   Echo.
   Set/p "NombreChoix=NombreChoix: "
   If "%NombreChoix%"=="1" Goto Jouer
   If "%NombreChoix%"=="2" (
      If Not Exist *.Sauvegarde Goto Menu
      Call :Lecture
      Goto BoucleJeu
   )
   If "%NombreChoix%"=="3" Exit

Goto Menu

:Jouer
Cls
Echo Choisissez votre nombe de vies:
Echo Mettez -1 pour des vies infinits
Set/P "NombreCoupsMax=Vies: "

    :: Mise en plece des variables
   Set NombreCoups=0
   Set NombreCoupsRestant=%NombreCoupsMax%

   :: NombreAleatoire
   Set ChiffreMystere0=!Random:~-1!
   Set ChiffreMystere1=!Random:~-1!
   Set ChiffreMystere2=!Random:~-1!
   Set ChiffreMystere3=!Random:~-1!
   Set NombreMystere=%ChiffreMystere0%%ChiffreMystere1%%ChiffreMystere2%%ChiffreMystere3%
   
   :BoucleJeu
      
      :Affichage
   
      Cls
      Echo Coup(s)         = nø%NombreCoups%
      Echo Coup(s) restant = %NombreCoupsRestant%
      Echo.
      Echo ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿
      Echo ³ Notation ³  Essais  ³
      Echo ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄ´
      For /L %%A In (1,1,%NombreCoups%) Do (
         Echo ³   !ListNotation%%A!   ³   !ListEssais%%A!   ³
      )
      If %NombreCoups%==%NombreCoupsMax% (
         Call :Fin Perdu
         Goto Menu
      )
      If %NombreChoix%==%NombreMystere% (
         Call :Fin Gagne
         Goto Menu
      )
      Echo ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÙ
      Echo.
      Echo L‚gende:
      Echo  - O = Bien plac‚
      Echo  - M = Mal plac‚
      Echo  - X = Inexistant
      Echo.
      Echo Pour sauvegarder ‚crivez: SAUVER
      Set NombreChoix=0
      Set/P "NombreChoix=Entrer les nombres de 9999 a 0000: "
   
      If /I "%NombreChoix%"=="SAUVER" (
         Call :Sauver
         Goto Affichage
      )
      
      
      :Securite
   
      :: Longueur
      If "%NombreChoix:~3%"=="" Goto Affichage
      If Not "%NombreChoix:~4%"=="" Goto Affichage
      
      :: Chiffre
      For /L %%A In (0,1,3) Do (
         Set TestChiffre=Non
         For /L %%B In (0,1,9) Do (
            If "!NombreChoix:~%%A,1!"=="%%B" Set TestChiffre=Oui
         )
         If !TestChiffre!==Non Goto Affichage
      )
   
   Set/A NombreCoups+=1
   Set/A NombreCoupsRestant-=1
   
   :IA
   
      :: Tableau de notation
      :: Decoupage du nombre choisie
      :: Recherche de pions bien placés
      For /L %%A In (0,1,3) Do (
         Set Notation%%A=X
         Set ChiffreTraite%%A=Non
         Set ChiffreChoix%%A=!NombreChoix:~%%A,1!
         If !ChiffreChoix%%A!==!ChiffreMystere%%A! (
            Set Notation%%A=O
            Set ChiffreTraite%%A=Oui
         )
      )
      
      ::Recherche de pions mal placés
      
      :Variable
      Set A=0
      
      :BoucleChiffre
      
         :Variable
         Set B=0
         Set Stop=Non
         
         :BoucleRecherche
         
            If !ChiffreChoix%A%!==!ChiffreMystere%B%! (
               If !ChiffreTraite%B%!==Non (
                  Set Notation%A%=M
                  Set ChiffreTraite%B%=Oui
                  Set Stop=Oui
               )
            )
            Set/A B+=1
         
         If Not %B%==4 If %Stop%==Non Goto BoucleRecherche
         
         Set/A A+=1
         
      If Not %A%==4 Goto BoucleChiffre
      
      Set ListNotation%NombreCoups%=%Notation0%%Notation1%%Notation2%%Notation3%
      Set ListEssais%NombreCoups%=%NombreChoix%
      
   Goto BoucleJeu

:Fin

   If %1==Gagne Set "Message=Bravo tu as gagne"
   If %1==Perdu Set "Message=Perdu: reessaye  "
   
   Echo ÃÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´
   Echo ³  %Message%  ³
   Echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
   Pause>Nul
   
Goto :eof

:Sauver

   Cls
   Set Nom=
   Echo Sauvegarde existantes :
   Echo.
   If Exist *.Sauvegarde Dir /B *.Sauvegarde
   Echo.
   Set/P Nom=Ecriver le nom de votre sauvegarde:
   If Not Defined Nom goto sauve
   Set "Nom=%Nom:.Sauvegarde=%.Sauvegarde"
   If Not Exist %Nom% Goto Ecriture
   
   :SauvegardeExistante
   Echo Cette Sauvegarde existe deja.
   Echo Voulez-vous la remplacer:
   Echo       - Oui = 1
   Echo       - Non = 2
   Set/P Choix=Choix :
   If Not Defined choix Goto SauvegardeExistante
   If %choix%==1 Goto Ecriture
   If %choix%==2 Goto Sauver
   Goto SauvegardeExistante
   
:Ecriture

   Echo %NombreCoups% >> %Nom%
   For /L %%A In (1,1,%NombreCoups%) Do Set "LigneAEcrire=!LigneAEcrire!!ListNotation%%A!!ListEssais%%A!"
   Echo %LigneAEcrire% >> %Nom%
   Set "LigneAEcrire="
   For /L %%A In (0,1,3) Do Set "LigneAEcrire=!LigneAEcrire!!ChiffreMystere%%A!!Random:~-1!"
   Echo %LigneAEcrire% >> %Nom%
   Echo %NombreCoupsMax% >>%Nom%
   
Goto :eof
   
:Lecture

   Cls
   Set Nom=
   Echo Sauvegarde existantes :
   Set A=1
   For /F %%A In ('Dir/B *.Sauvegarde') Do (
      Echo !A! = %%A
      Set Fichier!A!=%%A
      Set/A A+=1
   )
   Echo.
   Set/P "Choix=Ecriver le numero de la sauvegarde a charger: "
   If "!Fichier%Choix%!"=="" Goto Lecture
   Set "Nom=!Fichier%Choix%!"
   Set "Nom=%Nom:.Sauvegarde=%.Sauvegarde"
   If Not Exist %Nom% Goto Ecriture
   
   Set A=1
   For /F "delims=" %%A In ('Type %Nom%') Do (
      Set "Ligne!A!=%%A"
      echo %%A
      Set/A A+=1
   )
   
   Set NombreCoups=%Ligne1%
   Set NombreCoupsMax=%Ligne4%
   Set/A NombreCoupsRestant=%NombreCoupsMax%-%NombreCoups%
   Set/A NombreCoupsFin=%NombreCoups%+1
   
   Set A=0
   Set B=4
   Set C=1
   Set D=0
   
   :BoucleLecture
   
      Set ListNotation%C%=!Ligne2:~%A%,4!
      Set ListEssais%C%=!Ligne2:~%B%,4!
      If Not %C% GTR 3 Set ChiffreMystere%C%=!Ligne3:~%D%,1!
      
      Set/A A+=8
      Set/A B+=8
      Set/A C+=1
      Set/A D+=2
      
   If Not %C%==%NombreCoupsFin% Goto BoucleLecture
   
   Set NombreMystere=%ChiffreMystere0%%ChiffreMystere1%%ChiffreMystere2%%ChiffreMystere3%
   
Goto :eof






______________________________________________________
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 Master Mind 
Super Wink




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :

Hugo7, sans faire exprès... a écrit:
Il conviendra de [...] supprimer le panneau de la liste des panneaux présente dans une variable liste dans la liste des variables.
Visiter le site web du posteur
Répondre en citant
Message Master Mind 
Merci !

J'ai essayé de faire un code simple et commenté spécialement pour ce jeu !




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


Skype
Répondre en citant
Message Master Mind 
Simple? Mort de Rire




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :

Hugo7, sans faire exprès... a écrit:
Il conviendra de [...] supprimer le panneau de la liste des panneaux présente dans une variable liste dans la liste des variables.
Visiter le site web du posteur
Répondre en citant
Message Master Mind 
Plus simple que le dernier Smile ( ICI )




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


Skype
Répondre en citant
Message Master Mind 
Oui, c'est vrai Laughing




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :

Hugo7, sans faire exprès... a écrit:
Il conviendra de [...] supprimer le panneau de la liste des panneaux présente dans une variable liste dans la liste des variables.
Visiter le site web du posteur
Message Master Mind 


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