Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Bat] JEUX DE L'OIE
Auteur Message
Répondre en citant
Message [Bat] JEUX DE L'OIE 
Et hop un nouveau petit jeux en batch, sans commande externe !! Mr. Green

lien boxnet : http://www.box.net/shared/hfoa0ih4be



Merci pour vos commentaires.
Code:

@echo off
title JEUX_DE_L'OIE ©   ^|   By STRYK
mode con cols=88 lines=48 &color 3E
:: --------------------     stryk@live.fr    ----------------------
:: Merci à : --------------------     www.batch.xoo.it/index.php   ----------------------
:: et en particulier à :    LADDY     et    BATCH-MAN

:: Pour plus de lisibilitée, je vous recommande l'éditeur de texte : NOTEPAD++
:: il "reconnait" le language batch et affiche des couleurs différentes pour les commandes, les variables, les index, etc...

:RETRY

:: les commentaires sont placés avant les commandes ( au dessus) !

:: ici, les variables nommées  _FLAG ont le même rôle qu'une variable booléenne pour ceux qui connaissent !

::  %WELCOME_FLAG%  : initialisé à ON, sert à différencier l'affichage de bienvenue
::  après le premier tour, il passe à OFF
set WELCOME_FLAG=ON
::  %FIRST_TIME_FLAG%  : initialisé à ON, sert à ne pas faire de @ping au début du batch
::  après le premier tour, il passe à OFF et il y a un @ping après le tour du joueur2
set FIRST_TIME_FLAG=ON
::  %COMM_FLAG%  : initialisé à ON, sert à différencier le commentaire "pour lancez les dés pressez enter"  ou  "joueur2 joue"
::  à chaque tour il prends successivement la valeur OFF  puis ON
set COMM_FLAG=OFF
::  %PLAYER_FLAG%  : initialisé à J1 ( joueur1), sert à déterminer quel pion doit être avancé
::  à chaque tour il prends successivement la valeur J2  puis J1
set PLAYER_FLAG=J1
::  %WINNER_FLAG%  : initialisé à OFF ( aucun joueur), sert à déterminer quel joueur a gagné
:: si cette variable change ( 1 ou 2) , %WINNER_PASS_FLAG%  passe à ON
set WINNER_FLAG=OFF
::  %WINNER_PASS_FLAG%  : initialisé à OFF, sert à ne plus toucher à la position des joueurs si = ON
set WINNER_PASS_FLAG=OFF
:: %D1%  et %D2% :initialisé à "éspace" , affiche la valeur de chaque dés
:: --- Attention, Après le signe = il y a des ESPACES !!
set D1=
set D2=
:: %POS_D% : initialisé à 0 (zéro), sert à changer la position des dés à chaque tour
set POS_D=0
:: %POS_J1%  et  %POS_J2% : initialisés à 0 (zéro), servent à déterminer la position des pions
set POS_J1=0
set POS_J2=0
:: de %A0%  à  %B25% : servent à  déterminer la position des pions grâce à  %POS_J1%  et  %POS_J2%
set A0=²
:: --- Attention, Après le signe = il y a des ESPACES !!
set A1=
set A2=
set A3=
set A4=
set A5=
set A6=
set A7=
set A8=
set A9=
set A10= 
set A11=
set A12=
set A13=
set A14=
set A15=
set A16=
set A17=
set A18=
set A19=
set A20=
set A21=
set A22=
set A23=
set A24=
set A25=

set B0=Û
:: --- Attention, Après le signe = il y a des ESPACES !!
set B1=
set B2=
set B3=
set B4=
set B5=
set B6=
set B7=
set B8=
set B9=
set B10=
set B11=
set B12=
set B13=
set B14=
set B15=
set B16=
set B17=
set B18=
set B19=
set B20=
set B21=
set B22=
set B23=
set B24=
set B25=

:TABLE

:: si le pion du joueur1 arrive ou dépasse la case 25, il à gagné
:: donc on "zape" le déplacement des pions
if %POS_J1% GEQ 25 ( set WINNER_FLAG=1
                     set WINNER_PASS_FLAG=ON
                set A25=²
                     goto :PASS_WIN
                     )
:: idem pour joueur2
if %POS_J2% GEQ 25 ( set WINNER_FLAG=2
                     set WINNER_PASS_FLAG=ON
                set B25=Û
                goto :PASS_WIN
                     )
:WIN_DOWN

:: no comment
if %WINNER_FLAG%==1 ( cls
    echo.
    echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
    echo.
    echo            ------------  Bravo, vous avez Gagn‚ cette partie !  ------------
    echo.
    echo.
    echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
    echo.
    goto :OUI_NON
   )
   
if %WINNER_FLAG%==2 ( cls
    echo.
    echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
    echo.
    echo           ------------  D‚sol‚ vous avez Perdu cette partie ! !  ------------
    echo.
    echo.
    echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
    echo.
   goto :OUI_NON
   )

goto :PASS_OUI_NON

:OUI_NON

echo.
echo.
echo.
set RETRY=O
set /p RETRY=                            Rejouer   [O]ui  [N]on     \\:
if /i %RETRY%==o goto :RETRY
if /i %RETRY%==n goto :END
echo Choix invalide
@ping localhost -n 2 >nul
goto :OUINON

:: pourquoi deux index au même endroit alors qu'un seul suffisait ???
:: prenez l'habitude de créer un index par bloc de commande, ainsi même si un bloc est déplacé
:: on déplace aussi son index correspondand et tout marche comme avant !
:PASS_OUI_NON
:PASS_WIN

:: --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cls
echo.
echo                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                º                                                        º
:: bienvenue est affiché seulement au lancement du batch
if %WELCOME_FLAG%==ON ( echo                º       -----   Bienvenue au Jeux de l'Oie   -----       º
   ) else ( echo                º             -----   Jeux de l'Oie   -----              º )
echo                º                                                        º
echo                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo.
:: on retrouve nos p'tits %Axx% avec un "espace" pour respecter l'alignement du plateau de jeux
echo      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»           %A24%         %A23%           %A22%           %A21%           %A20%
echo      º      %A25%        º         ÚÄÄ¿      ÚÄÄ¿        ÚÄÄ¿        ÚÄÄ¿         ÚÄÄ¿
echo      º               ºÄÄÄÄÄÄÄÄij24³ÄÄÄÄÄij23³ÄÄÄÄÄÄÄij22³ÄÄÄÄÄÄÄij21³ÄÄÄÄÄÄÄÄij20³
echo      º        %B25%      º         ÀÄÄÙ      ÀÄÄÙ        ÀÄÄÙ        ÀÄÄÙ         ÀÄÄÙ
echo      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ           %B24%         %B23%           %B22%           %B21%            ³ %B20%
echo           Arriv‚e                                                               ³
echo         %A13%            %A14%           %A15%         %A16%           %A17%           %A18%          %A19% ³
echo       ÚÄÄ¿         ÚÄÄ¿        ÚÄÄ¿      ÚÄÄ¿        ÚÄÄ¿        ÚÄÄ¿         ÚÄÄ¿
echo       ³13³ÄÄÄÄÄÄÄÄij14³ÄÄÄÄÄÄÄij15³ÄÄÄÄÄij16³ÄÄÄÄÄÄÄij17³ÄÄÄÄÄÄÄij18³ÄÄÄÄÄÄÄÄij19³
echo       ÀÄÄÙ         ÀÄÄÙ        ÀÄÄÙ      ÀÄÄÙ        ÀÄÄÙ        ÀÄÄÙ         ÀÄÄÙ
echo        ³ %B13%           %B14%           %B15%         %B16%          %B17%           %B18%             %B19%
echo        ³
echo        ³ %A12%           %A11%           %A10%        %A9%           %A8%           %A7%            %A6%
echo       ÚÄÄ¿         ÚÄÄ¿        ÚÄÄ¿       ÚÄ¿         ÚÄ¿         ÚÄ¿          ÚÄ¿
echo       ³12³ÄÄÄÄÄÄÄÄij11³ÄÄÄÄÄÄÄij10³ÄÄÄÄÄÄij9³ÄÄÄÄÄÄÄÄij8³ÄÄÄÄÄÄÄÄij7³ÄÄÄÄÄÄÄÄÄij6³ %B6%
echo       ÀÄÄÙ         ÀÄÄÙ        ÀÄÄÙ       ÀÄÙ         ÀÄÙ         ÀÄÙ          ÀÄÙ
echo         %B12%            %B11%           %B10%         %B9%           %B8%           %B7%            ³
echo           D‚part                                                                ³
echo      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»          %A1%          %A2%           %A3%           %A4%          %A5% ³
echo      º      %A0%        º         ÚÄ¿        ÚÄ¿         ÚÄ¿         ÚÄ¿          ÚÄ¿
echo      º               ºÄÄÄÄÄÄÄÄij1³ÄÄÄÄÄÄÄij2³ÄÄÄÄÄÄÄÄij3³ÄÄÄÄÄÄÄÄij4³ÄÄÄÄÄÄÄÄÄij5³
echo      º        %B0%      º         ÀÄÙ        ÀÄÙ         ÀÄÙ         ÀÄÙ          ÀÄÙ
echo      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ          %B1%          %B2%           %B3%           %B4%            %B5%         
echo.
echo.

:: au lancement du batch, les dés ne sont pas affichés, mais seulement un texte
if %WELCOME_FLAG%==ON (
   echo      ------------------------------------------------------------------------------
    echo.
   echo                            Vous allez jouer avec ce pion :  ²
    echo.
    echo                        Votre adversaire jouera avec celui-ci :  Û
    echo.
   echo.
   echo      ---------------------------   Bon divertissement   ---------------------------
   echo.
   goto :PASS_AFF_DD
   )
   
echo.
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
echo.

:: à chaque tour, la position des dés change grâce au "compteur" sur %POS_D%
set /a POS_D = POS_D + 1


if %POS_D%==1 (
    echo                       ÚÄÄ¿
    echo               ÚÄÄ¿    ³ %D2%³
    echo               ³ %D1%³    ÀÄÄÙ
    echo               ÀÄÄÙ)
if %POS_D%==2 (
    echo                                                       ÚÄÄ¿
    echo                                                       ³ %D2%³     ÚÄÄ¿
    echo                                                       ÀÄÄÙ     ³ %D1%³
    echo                                                                ÀÄÄÙ)
if %POS_D%==3 (
    echo                                   ÚÄÄ¿
    echo                                   ³ %D2%³    ÚÄÄ¿
    echo                                   ÀÄÄÙ    ³ %D1%³
    echo                                           ÀÄÄÙ
   set POS_D=0)

echo.
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
:: --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

:PASS_AFF_DD

:: si un joueur a gagné, on laisse le plateau de jeux affiché un moment avec un ping !
if %WINNER_PASS_FLAG%==ON ( @ping localhost -n 2 >nul
                            goto :WIN_DOWN
                     )

:: si c'est au tour du joueur1, on invite l'utilisateur à appuyer sur une touche pour jouer
if %COMM_FLAG%==OFF ( echo.
:: au lancement du batch, il n'y a pas de ping avant l'affichage du texte
  if %FIRST_TIME_FLAG%==OFF @ping localhost -n 2 >nul
  if %FIRST_TIME_FLAG%==ON set FIRST_TIME_FLAG=OFF
:: au lancement du batch, le message est different de la suite du jeux
  if %WELCOME_FLAG%==OFF (
  echo                                              Pour relancer les d‚s, pressez "ENTER"
  )
  if %WELCOME_FLAG%==ON (
  echo                           Pour Commencer … jouer et lancer les d‚s, pressez "ENTER"
::   %WELCOME_FLAG%  est mis à OFF , il ne servira plus .
  set WELCOME_FLAG=OFF
  )
::  %COMM_FLAG%  change  !  au prochain tour, l'affichage du commentaire sera différent.
  set COMM_FLAG=ON
  Pause>nul
:: comme %COMM_FLAG% a changé, on "saute" le prochain bloc de commande pour qu'il ne soit pas executé
  goto :PASS_COMM
  )

:: si c'est au tour du joueur2, un autre commentaire est affiché.
if %COMM_FLAG%==ON ( echo.
  @ping localhost -n 2 >nul
  echo                                                                    Joueur 2 Joue !
  @ping localhost -n 2 >nul
::  %COMM_FLAG%  change  !  au prochain tour, l'affichage du commentaire sera différent.
  set COMM_FLAG=OFF
  )

:PASS_COMM

:RECALC

:: les dés sont lancés  !  à chaque tour, %D1%  et %D2% prennent une valeur aléatoire comprise entre 0 et 6 grâce à  RANDOM
set /a D1=%RANDOM%%%6
set /a D2=%RANDOM%%%6
::  si un des dés prend la valeur 0, alors on recommance (  sur un dés, il n'y a pas de face 0 )
if %D1%==0 goto :RECALC
if %D2%==0 goto :RECALC

::  %AVANCE_DD% est l'addition des deux dés
set /a AVANCE_DD = D1 + D2

if %PLAYER_FLAG%==J2 goto :PLAYER_2

::PLAYER_1
:: au tour du joueur1, on additionne la position de départ avec le résultat des dés  !
set /a POS_J1 = POS_J1 + AVANCE_DD
::  bon, là c'est un peu spécial, alors un minimum d'attention s'impose  !
:: dans le tableau de jeux, il y a des variables qui commencent par   A   et qui ont par défaut la valeur "ESPACE" (  un espace au clavier )
:: ici on attribue à   A%POS_J1%  la valeur   ²   qui correspond au pion du joueur !
:: exemple : au premier tour, le pion est sur la position  A0 , donc %A0%=²
:: au second tour, on remplace le 0 de A0 par la valeur de %POS_J1%  au hasard 8, donc on a en réalité :  set A8=²
:: dans l'exemple, la valeur "ESPACE" de la variable   %A8%  du tableau est remplacée par le pion  !
:: c'est comme ça que le pion avance
set A%POS_J1%=²
::  maintenant il faut "effacer" le pion du coup précédent sinon vous aurez autant de pion que de coups joués !
:: même chose qu'avant mais cette fois-ci, on soustrait le résultat des dés pour déterminer l'ancienne position !
set /a J1_EX = POS_J1 - AVANCE_DD
:: attention à l' "ESPACE" après le signe =
set A%J1_EX%=
:: on donne la main au jour deux
set PLAYER_FLAG=J2
:: comme %PLAYER_FLAG%==J2, on "saute" PLAYER_2
goto :PASS_PLAYER_2

:PLAYER_2
:: bon bein là, y'a qu'à relire PLAYER_1, j'vais pas tout répéter.....
set /a POS_J2 = POS_J2 + AVANCE_DD
set B%POS_J2%=Û
set /a J2_EX = POS_J2 - AVANCE_DD
set B%J2_EX%=
set PLAYER_FLAG=J1

:PASS_PLAYER_2
:: et hop, on repart depuis le début
goto :TABLE

:END

cls
mode con cols=88 lines=10 &color 1A
echo.
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
echo.
echo                          ------------  BYE BYE  ------------
echo.
echo.
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
@ping localhost -n 3 >nul
::  ENJOY  !





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Bat] JEUX DE L'OIE 
Trop fort tes jeux encore bravo Wink

En plus j'ai gagner deux fois Mr. Green




______________________________________________________
Citation:
RSS du forum : [ batch.xoo.it/rss.php ]
Visiter le site web du posteur
Répondre en citant
Message [Bat] JEUX DE L'OIE 
Merci, merci Cool




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Bat] JEUX DE L'OIE 
salut je voudré savoir a qoi sa sert cette commande : ?
mode con cols=88 lines=48 &color 3E




______________________________________________________
Tahiti the best island!! sun beach surf skate... uèèèèèèè =)
MSN
Répondre en citant
Message [Bat] JEUX DE L'OIE 
kinix a écrit:
salut je voudrais savoir à quoi sa sert cette commande : ?
mode con cols=88 lines=48 &color 3E


Bonjour

cette ligne sert à définir le nombre de colonnes et de lignes à utiliser, ce qui a pour effet de réduire la taille de la fenêtre msdos lorsqu'elle s'ouvre (MODE+CON), ainsi que changer la couleur de fond de la fenêtre et police d'écriture (Color) .


Wikidos :

La commande mode + con : Configure les périphériques du système. La commande MODE exécute différentes taches: affichage de l'état du système et modification de ses paramètres, ou reconfiguration des ports et périphériques.
Arrow http://www.batchclipboard.info/wiki/doku.php?id=commandline:commande_mode

La commande color : Change les couleurs par défaut du premier et de l'arrière plan de la console
Arrow http://www.batchclipboard.info/wiki/doku.php?id=commandline:commande_color




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Bat] JEUX DE L'OIE 
Merci laddy!! Smile
Smile




______________________________________________________
Tahiti the best island!! sun beach surf skate... uèèèèèèè =)
MSN
Message [Bat] JEUX DE L'OIE 


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