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 :
Visiter le site web du posteur Skype
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 :
Visiter le site web du posteur Skype
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 :
Visiter le site web du posteur Skype
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