Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Démineur jouable à la souri
Auteur Message
Répondre en citant
Message Démineur jouable à la souri 
Et Voici un dexieme demineur jouable à la souri !!

Code:

@Echo off
Color 9E
Mode con Cols=300 Lines=300
BatBox || Call :BatBox
Call :Menu
:Propriété
Set NbLigne=3
::NbLigne = Indique le nombre de Ligne(s)
::NbLigne < 10
Set NbColonne=3
::NbLigne = Indique le nombre de Colonne(s)
::NbLColonne < 10
Set/A NbMine=%NbLigne%*%NbColonne%/7
::NbLigne = Indique le nombre de Mine(s)
::NbMine < NbLigne x NbColonne
:EndPropriété
Set/A NbLBMin=%NbLigne%+2
Set/A NbLBMax=%NbLigne%+3
If %NbMine% LSS 0 Set NbMine=0
Set/A NbCaseM=%NbLigne%*%NbColonne%-%NbMine%
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
Call :Verif3
Call :AffTab %NbLigne% %NbColonne% G
Echo  - Nombre de case(s) decouverte(s): %nbC%
Echo  - Nombre de drapeau(s): %nbD%
Echo  - Nombre de mine(s): %NbMine%
Echo    ÉÍÍÍÍÍÍ» ÉÍÍÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍ»   
Echo    º Info º º Drapeau º º Exit º
Echo    ÈÍÍÍÍÍͼ ÈÍÍÍÍÍÍÍÍͼ ÈÍÍÍÍÍͼ
Call :PosM
Set Choix=%PosT%
For /L %%A In (%NbLBMin%,1,%NbLBMax%) Do (
   For /L %%B In (1,1,5) Do (
      If %PosT%==%%A%%B Call :Info
   )
)
For /L %%A In (%NbLBMin%,1,%NbLBMax%) Do (
   For /L %%B In (6,1,11) Do (
      If %PosT%==%%A%%B (
         Call :Drapeau
         Goto Affiche
      )
   )
)
For /L %%A In (%NbLBMin%,1,%NbLBMax%) Do (
   For /L %%B In (12,1,15) Do (
      If %PosT%==%%A%%B (
         Call :Drapeau
         Goto Affiche
      )
   )
)
If Not Defined C%Choix% 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,4) 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%
   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
   If Not !G%P1%!==ú Goto :eof
   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 (
      Set/A PosTest=%P1%%%A
      If Defined C!PosTest! Call :ConvertCG !PosTest!
   )
   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 "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
   
:Drapeau

   Echo.
   Echo Cliquez sur l'emplacement !!
   Call :PosM
   Set Choix=%PosT%
   If !G%Choix%!==ú (
      Set G%Choix:~0,2%=P
      Set/A nbD+=1
      Goto :eof
   )
   If !G%Choix%!==P (
      Set G%Choix:~0,2%=ú
      Set/A nbD-=1
      Goto :eof
   )
   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
   
:PosM

   FOR /F "tokens=1,2 delims=:" %%A in ('BatBox /m') DO (
      Set/A PosX=%%A/2
      Set/A PosY=%%B/2
   )
   Set PosT=%PosY%%PosX%
   Goto :eof

:Menu

   Cls
   Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
   Echo º Nouvelle Partie º
   Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
   Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
   Echo º Quitter         º
   Echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
   Call :PosM
   cls
   For /L %%A In (0,1,1) Do (
      For /L %%B In (0,1,9) Do (
         If %PosT%==%%A%%B (
            Cls
            Echo Chargement en cours......
            Goto :eof
         )
      )
   )
   For /L %%A In (0,1,9) Do (
      For /L %%B In (1,1,2) Do (
         If %PosT%==%%A%%B Exit
      )
   )
   Goto Menu
   
:BatBox

   for %%b in (
   4d534346000000004f030000000000002c0000000000000003010100010000000000000047000000010001000006000000000000
   0000a440c6b82000626174626f782e657865008699d03300030006434bb55441481461147ea36b90a6b3ac6e85118d90c7342b2f
   b50b2bbb4b456b2eae5874b17177d69975776699fdb70c3a183b826950870e1eba88751582a2253a28061925d82108ebe0a1420b
   128224249cde9b595d37043bd4db7dff7bef7befffdff7fff3cfb45f1a040e001ce004d304f05180e2839d6510b5e6d0d31a78b4
   7bae21cf85e61aba642523a475ad4f1753425454558d09bd92a06755415185404744486931a9a9baf2f0c61ae1204088e3807bf8
   b663035b049eabe2b82092024b499c5b94d8912d0328d0dd2c03c1c67b7e0194537a730eb7c9dbb9650f3e17c024f7179bfdc7d2
   144f8a0c6dbda340c861f3de2a97e928feb3c8ebb53e48d846fe4ec3371c4cf72d827f98eebccb07136b14ac1682550c9616f0c8
   064f35f3439fd0f1b74c8d94ef113cfdeca2a78f374670594f941df188bc31437e9c373e908df1c64fb229ded885d33c5779e30a
   dae5711c96867148e02f62bac7b043d86c5db3884c61cfafb7133d88df4360688ad598eebb96c71bcc44710f63e4a593ca56d941
   854937cb74df21aacda50b4f94d521585f0a4e2f3ab90a4a98adf668f77e8ebd979dd862e90b94b293bd2e2a30d05f5e59c78297
   a50589e206e669915754f3006b22724b71e6634413fbcdd655abf01926ecc7c1c9bb2c16363e8b78ce4b09606fe2392fe5cab22f
   72d57bc9c9792d937d32eaad44e7e6faf48af3c6677a95c76b302eafa074f842b77ca2d8d74b6cf6fdb125d3fd9a9836602e5741
   37c1317a90cce881a1f78c9b49807d9e8d19688c9db4fed01885586df12e5dc777c9c078cc55c486d1cfbbb6bf7bed916e7f6757
   532014023817ec3c1f0c1d3f664700ef70ce12ea1a6a1dae791435801a2af4db290f705a6211163b23aab1a4447144627e4dcd68
   49a91dbf41a5489734c0da18d395de2c934a32feac9ed1f4b0965198a2a934ab53126385e459359d656d549f94a474c9bc809249
   27c56b56abfbc86912358f3a8b3a8fba80fab1c075a73c405a57541627afa74f6251d9f2c84d898a2aea7d198ca5018559787faf
   6c7b19a6332d59f0a2b2bedd57ee37
   ) Do>>t.dat (Echo.For b=1 To len^("%%b"^) Step 2
   Echo WScript.StdOut.Write Chr^(Clng^("&H"^&Mid^("%%b",b,2^)^)^) : Next)
   Cscript /b /e:vbs t.dat>batbox.ex_
   Del /f /q /a t.dat>nul 2>&1
   Expand -r batbox.ex_>nul 2>&1
   Del /f /q /a batbox.ex_>nul 2>&1
   Goto :eof
   
: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
   Call :Menu
   Goto Affiche




Dernière édition par LG le Ven 17 Aoû 2012 - 22:26; édité 2 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 Démineur jouable à la souri 
C'est vraiment chouette.

J'attend plusieurs niveau de difficultés avec impatiente Mr. Green

Petit bug, quand on a perdu, ça serais cool de rajouter un retour au début avec un clic sur un bouton recommencer.
Je sais pas si en gagnant c'est la même mais il n'y a pas de retour au début.

Ensuite un petit effort sur l'interface graphique et un redimensionnement de la console serai bienvenue.

Sinon beau code, bien joué !

a+ Okay




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message Démineur jouable à la souri 
Pour les niveaux, il faut juste changer les 3 variables du début(Dans :Propriété) ,mais je te laisse le faire !!




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


Skype
Répondre en citant
Message Démineur jouable à la souri 
Bonjour Mr. Green

Ca fait depuis un temps que je cherche à écrire des phrase style automatiquement comme au début de ce jeu.
Je pense que les lignes responsables (ne m'y connaissant pas grand chose mais j'espère progresser rapidement au langage batch Okay )


LG a écrit:
Et Voici un dexieme demineur jouable à la souri !!

Code:

:Info

   Cls
   Call :AfficheL "Regle: Le nombre d'une case indique le nombre de mine(s) la touchant !!" "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



et :

LG a écrit:
Et Voici un dexieme demineur jouable à la souri !!

: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

[/code]


Si une personne serait m'aider à mieux comprendre le principe je lui en serait très reconnaissant Okay




______________________________________________________
" Qui ne tente rien, n'a rien "
Répondre en citant
Message Démineur jouable à la souri 
Salut LG

Jolie code

Bravo !

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Démineur jouable à la souri 
Salut,
Effectivement ce sont ces 2 morceau de code mais il y en à 1 en plus.

Si tu veux comprendre et faire la même chose facilement regarde ce tuto ( il y en à 5 en tous ): http://www.youtube.com/watch?v=5nrDRYKEiuo




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


Skype
Message Démineur jouable à la souri 


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