Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Démineur
Auteur Message
Répondre en citant
Message Démineur 
Bonjour, voila un petit démineur Cool :

Code:

@Echo off
Color 9E
Mode con Cols=300 Lines=300
Echo Chargement.....
:Propriété
Set NbLigne=9
Set NbColonne=9
Set/A NbMine=%NbLigne%*%NbColonne%/7
If %NbMine% LSS 0 Set NbMine=0
Set/A NbCaseM=%NbLigne%*%NbColonne%-%NbMine%
:EndPropriété
Set nbTA=0
Set nbD=0
Set nbC=0
For /L %%A In (1,1,%NbLigne%) Do (
   For /L %%B In (1,1,%NbColonne%) Do (
      Set C%%A%%B=ú
      Set G%%A%%B=ú
   )
)
Setlocal Enabledelayedexpansion
Call :BoucleAlea
For /L %%A In (1,1,%NbLigne%) Do (
   For /L %%B In (1,1,%NbColonne%) Do (
      Call :PosNb %%A %%B C%%A%%B
   )
)
If Not Exist Temp.ini Call :Info
Echo T > Temp.ini
:Affiche
Cls
Set Choix=
Call :Verif3
Call :AffTab %NbLigne% %NbColonne% G
Echo.
Echo  - Nombre de drapeau(s): %nbD%
Echo  - Nombre de mine(s): %NbMine%
Echo  - Information = Info
Echo  - Quitter = Exit
Echo.
Set/P Choix=Entrez  les coordonnes:
If Not Defined Choix Goto Affiche
If /I "%Choix%"=="Exit" Exit
If /I "%Choix%"=="Info" Call :Info
If /I %Choix:~-1%==D (
   If !G%Choix:~0,2%!==ú (
      Set G%Choix:~0,2%=P
      Set/A nbD+=1
      Goto Affiche
   )
   If !G%Choix:~0,2%!==P (
      Set G%Choix:~0,2%=ú
      Set/A nbD-=1
      Goto Affiche
   )
)
If Not "!G%Choix:~0,2%!"=="ú" Goto Affiche
Call :ConvertCG %Choix:~0,2%
If !C%Choix:~0,2%!==0 Call :RevelZero %Choix:~0,2%
Goto Affiche

:AffTab

   Set P1=%1
   Set P2=%2
   Set P3=%3
   Setlocal Enabledelayedexpansion
   Set LigneColonne=
   For /L %%A In (1,1,%P2%) Do Set "LigneColonne=!LigneColonne! %%A"
   Echo   %LigneColonne%
   For /L %%A In (1,1,%P1%) Do (
      For /L %%B In (1,1,%P2%) Do (
         Set Line1=!Line1!ÎÍ
         Set Line2=!Line2!º!%P3%%%A%%B!
         Set Line3=!Line3!ÎÍ
      )
      Set Line1=Ì!Line1:~1!¹
      Set Line3=Ì!Line3:~1!¹
      If %%A==1 (
         Set Line1=É!Line1:~1,-1!»
         Set Line1=!Line1:Î=Ë!
         Echo   !Line1!
      )
      If %%A==%P1% (
         Set Line3=È!Line3:~1,-1!¼
         Set Line3=!Line3:Î=Ê!
      )
      Echo %%A !Line2!º
      Echo   !Line3!
      Set Line1=
      Set Line2=
      Set Line3=
   )
   Goto :eof

:Alea

   Set P1=%1
   Set P2=%2
   Set P3=%3
   Set/A Execpt=%P2%+1
   For /L %%A In (1,1,6) Do (
      Set/A "Alea=!P1!+!Random!*!P2!/32767"
   )
   If %Alea%==%Execpt% Goto Alea
   Set %~3=%Alea%
   Goto :eof
   
:BoucleAlea

   If %nbTA%==%NbMine% Goto :eof
   Call :alea 1 %NbLigne% nbA1
   Call :alea 1 %NbColonne% nbA2
   If !C%nbA1%%nbA2%!==ú (   
      Set C%nbA1%%nbA2%=
      Set/A nbTA+=1
   )
   
Goto BoucleAlea

:PosNb

   Set P1=%1%2
   If !C%P1%!== Goto :eof
   Set nbTCase=0
   For %%A In (+1,-1,+10,-10,+11,-11,+9,-9) Do (
      Set/A PosTest=%P1%%%A
      Call :Verif2 !PosTest!
   )
   Set %~3=%nbTCase%
   echo off
   Goto :eof
   
:Verif2

   If !C%1!== Set/A nbTCase+=1
   Goto :eof
   
:Verif3

   If %nbD%%nbC%==%NbMine%%NbCaseM% Call :Fin G
   Goto :eof
   
:ConvertCG

   Set P1=%1
   Set G%P1%=!C%P1%!
   If !G%P1%!== (
      Set C%P1%=Ï
      Call :Fin P
   )
   Set/A nbC+=1
   Goto :eof

:RevelZero

   Set P1=%1
   For %%A In (+1,-1,+10,-10,+11,-11,+9,-9) Do Call :Defined !P1! %%A
   Goto :eof
   
:Defined

   Set P1=%1
   Set P2=%2
   Set/A PosTest=%P1%%P2%
   If Not Defined C%PosTest% Goto :eof
   Set G%PosTest%=!C%PosTest%!
   Set/A nbC+=1
   Goto :eof
   
:Info

   Cls
   Call :AfficheL "Regle: Le nombre d'une case indique le nombre de mine(s) la touchant !!" "2"
    Pause>Nul                                                                                                                                                                                                                             
   Cls
   Call :AfficheL " - Jouer = Entrez le numero de la ligne + le numero de la colone !!" "2"
   Pause>nul
   Call :AfficheL " - Placer/Supprimer un drapeau = Entrez les 2 numeros suivi D'un "D" !!" "2"
   Pause>Nul
   Cls
   Call :AfficheL "Pour une plus grande visibilite:" "2"
   Pause>Nul
   Call :AfficheL " - Clickez sur le coin superieur gauche !!" "2"
   For /L %%A In (1,1,13) Do ping localhost -n 1 > Nul
   Call :AfficheL " - Clickez sur propriete !!" "2"
   For /L %%A In (1,1,15) Do ping localhost -n 1 > Nul
   Call :AfficheL " - Selectionne l'onglet Police !!" "2"
   For /L %%A In (1,1,15) Do ping localhost -n 1 > Nul
   Call :AfficheL " - Choisissez la taille des caracteres !!" "2"
   Pause>Nul
   Goto :eof
   
:AfficheL
Setlocal Enabledelayedexpansion
Call :Compt %1 P4
Set P1=%1
Set P1=%P1:"=%
Set P2=%2
Set P2=%P2:"=%
If "%P2%"=="" Set P2=6
For /L %%A In (1,1,%P4%) Do (
   Cls
   Echo !P1:~0,%%A!
   For /L %%A In (1,1,%P2%) Do (
      @Ping localhost -n 1 > Nul
   )
)
Goto :eof


:Compt
Set nb=0
Set P1=%1
Set P1=%P1:"=%
Set P2=%2

:BoucleCompt

   If "%P1%"=="" (
      Set %~2=%nb%
      Goto :eof
   )
   Set/A nb+=1
   Set P1=%P1:~1%
   Goto BoucleCompt
   
:Fin

   Cls
   If %1==G Color 9A
   If %1==P Color 9C
   Call :AffTab %NbLigne% %NbColonne% C
   Echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍ»
   If %1==G Echo   º TU AS GAGNE º
   If %1==P Echo   º TU AS PERDU º
   Echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍͼ
   Pause>Nul
   Exit






______________________________________________________
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 Démineur 
Salut Mr. Green

Intéressant, j'avais eu l'idée d'en créer un il y a quelques temps, mais avec l'utilisation de la souris Razz

Le tient est très long à la détente je trouve..

Peut être peut tu nous faire une V2 avec batbox pour jouer avec la souris, ça serais fun..? Smile

Bien joué Okay

@+




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message Démineur 
Bonne idée , mais ma principale occupation est de réussir à afficher les zero d'une zone (Voir le vrai démineur) !!




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


Skype
Message Démineur 


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