Mon fichier BATCH ne s’exécute pas correctement

Résolu
Bonjour, depuis quelque temps, je suis en train de faire un petit "nombre mystère" avec cmd. Tout fonctionnait correctement jusqu'à maintenant, il y avait deux joueurs avant mais j'ai voulu en rajouter un... et voilà. Je vous mes les commandes et j'espère qu'il y a un petit génie qui peut m'aider :

:jeux 
@echo off
mode con: cols=30 lines=15
title Lz nombre mystère
color 6b
echo.
echo MiNi-GaMe By Aloïs !!
echo.
echo TROUVE LE NUMERO MYSTERE !!
echo.
echo.
echo
echo.
echo 1 ou 3 JOUEUR(S)
echo.
echo. Appuie sur entré pour commencer
echo.
pause>nul
:nbrjr
cls
echo.
echo NOMBRE DE JOUEUR ? (1 ou 3 (si tu veux trois tu mets 2)) :
echo.
set /p joueur=
if %joueur%==1 goto joueur1
if %joueur%==2 goto joueur2
if %joueur%==3 goto joueur3
) else (
goto nbrjr
:joueur1
cls
echo.
echo NV1 CHIFFRE MYSTERE DE 1-1000
echo ce jeu n'a pas encore d'autre niveau mais il sont en traveaux
IF ERRORLEVEL 1 set /a num=%RANDOM% %% 1000
echo.
echo ==============================
echo.
cls
:_error
color f1
echo.
echo.
set/p ch= CHIFFRE MYSTERE :
cls
set/a steps+=1
if %ch% lss %num% (
echo.
echo.
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est supérieur à : %ch%
echo.
goto _error
)else if %ch% gtr %num% (
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
echo.
echo.
echo.
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est inférieur à : %ch%
echo.
goto _error
) else (
cls
color e
echo.
echo BRAVO !!!!!!
echo %num%
echo.
echo.
echo NOMBRES DE TENTATIVES
echo %steps% fois
echo.
echo.
echo NIVEAU
if %steps% geq 20 (
echo Va vite faire ton boulot !!
C:\Users\production\Pictures\Penguins.jpg
) else if %steps% leq 1 (
echo *** excelent mec ***
) else if %steps% leq 2 (
echo Proche de la perfection
) else if %steps% leq 5 (
echo Pas mal !!
) else if %steps% leq 10 (
echo la tete ailleur...
) else if %steps% leq 20 (
echo tristesssssse... !!!!
)
)
pause>nul
set/a steps=0
goto replay

:joueur2
cls
set /p jr1= Prenom du Joueur 1 :
set /p jr2= Prenom du Joueur 2 :
set /p jr3= Prenom du Joueur 3 :
cls
echo.
:choixniv
cls
echo MODE 2 JOUEURS
echo.
echo NV1 CHIFFRE MYSTERE DE 1-1000
echo.
echo.
echo
===================================================
:niv1
cls
echo %jr1%
echo.
echo ENTRE LE CHIFFRE MYSTERE
echo POUR %jr2%
echo ENTRE 1 ET 1000
echo
:again1
set /p cm2= :
if %cm2% gtr 1000 (
echo Nombre inferieur a 1000 stp !!
timeout 2 >nul
goto again1
)
cls
echo %jr2%
echo.
echo ENTRE LE CHIFFRE MYSTERE
echo POUR %jr1%
echo ENTRE 1 ET 1000
:again2
set /p cm1= :
if %cm1% gtr 1000 (
echo Nombre inferieur a 1000 stp !!
timeout 2 >nul
goto again2
)
cls
echo %jr1% et %jr2%
echo
echo ENTRÉS LE CHIFFRE MYSTERE
echo POUR %jr3%
echo ENTRE 1 ET 1000
:again3
set /p cm1= :
if %cm0% gtr 1000 (
echo Nombre inférieur a 100 stp !!
timeout 2 >nul
goto again3
)
color f6
color a5
color b3
cls
:error1
color f1
echo.
echo.
set/p ch= %jr1% a toi de jouer :
cls
set/a steps1+=1
if %ch% lss %cm1% (
echo.
echo.
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est supérieur à : %ch%
echo.
goto error1
) else if %ch% gtr %cm1% (
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
echo.
echo.
echo.
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est inférieur à : %ch%
echo.
goto :error1
) else (
cls
color e
echo.
echo BRAVO %jr1%!!!!!!
echo %cm1%
color f5
color a5
color b3
echo.
echo.
echo.
echo.
echo.
timeout 4 >nul
)
cls
:error2
color f1
echo.
echo.
set/p ch= %jr2% a toi de jouer :
cls
set/a steps2+=1
if %ch% lss %cm2% (
echo.
echo.
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est supérieur à : %ch%
echo.
goto error2
) else if %ch% gtr %cm2% (
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
echo.
echo.
echo.
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est inférieur à : %ch%
echo.
goto :error2
) else (
cls
color e
echo.
echo BRAVO %jr2%!!!!!!
echo %cm2%
color 5f
color 1a
color 6b
echo.
echo.
echo.
timeout 4 >nul
)
cls
:error2
color f1
echo.
echo.
set/p ch= %jr3% a toi de jouer :
cls
set/a steps2+=1
if %ch% lss %cm2% (
echo.
echo.
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est supérieur à : %ch%
echo.
goto error2
) else if %ch% gtr %cm2% (
echo.
echo.
echo.
echo.
echo Ce n'est pas le bon chiffre
echo Reessaye encore
echo.
echo.
echo.
color F2
ping -n 2 127.0.0.1 >NUL
color F4
ping -n 2 127.0.0.1 >NUL
cls
echo.
echo Le nombre mystère est inférieur à : %ch%
echo.
goto :error2
) else (
cls
color e
echo.
echo BRAVO %jr3%!!!!!!
echo %cm2%
color 5f
color 1a
color 6b
timeout 2>nul
color 5f
color f5
color a4
color 4b
timeout 2>nul
echo LE GAGNANT EST :
echo CALCUL EN COUR...
timeout 5 >nul
if %steps1% gtr %steps2% %steps3%(
echo =======%jr2%========
echo.
echo.
echo NOMBRES DE TENTATIVES
echo %steps2% fois
) else (
echo =======%jr1%========
echo.=======%jr3%========
echo.
echo NOMBRES DE TENTATIVES
echo %steps1% fois
)
timeout 2 >nul
set/a steps1=1
set/a steps2=1
set/a steps3=1
goto replay

3 réponses

  1. Bonnour, plusieurs erreurs, la plupart situé au niveau du joueur 3.
    1. n'oublie pas de mettre les ":" dans les goto
      exemple "goto :truc"

      enlève le "IF ERRORLEVEL 1", sa merdouille

      tu a oublié de fermer la parenthèse du else de la ligne 28

      lorsque tu attribue un numéro au joueur 3,
      tu nomme la variable cm1 puis cm0 (ligne 167,168)

      qui se retrouve dans les if (ligne 304,322)
      et dans un echo (ligne 346)

      tu as 2 fois les balises "error2" (ligne 238,297)
      une pour le joueur 2 et une autre pour le joueur 3

      la variable "steps" du joueur 3 est appelé "steps2"
      or elle est utilisé pour le joueur 2

      tu as un else ligne 341 qui sert a rien
      autant le supprimer surtout qu'il n’était pas fermé

      ton "goto :replay" ne va sur rien, la balise replay étant inexistante

      petit corrigé en bas

      Sur ce bonne soiré :)
      1. :jeux 
        @echo off 
        mode con: cols=30 lines=15 
        title Lz nombre mystère
        color 6b
        echo. 
        echo MiNi-GaMe By Aloïs !!
        echo. 
        echo TROUVE LE NUMERO MYSTERE !! 
        echo. 
        echo. 
        echo 
        echo. 
        echo 1 ou 3 JOUEUR(S) 
        echo. 
        echo. Appuie sur entré pour commencer
        echo. 
        pause>nul 
        :nbrjr 
        cls 
        echo. 
        echo NOMBRE DE JOUEUR ? (1 ou 3 (si tu veux trois tu mets 2)) : 
        echo. 
        set /p joueur= 
        if %joueur%==1 goto :joueur1 
        if %joueur%==2 goto :joueur2 
        if %joueur%==3 goto :joueur3
        ) else ( 
        goto :nbrjr 
        )
        :joueur1 
        cls 
        echo. 
        echo NV1 CHIFFRE MYSTERE DE 1-1000 
        echo ce jeu n'a pas encore d'autre niveau mais il sont en traveaux
        set /a num=%RANDOM%%%1000+1 
        echo. 
        echo ============================== 
        echo. 
        cls 
        :_error 
        color f1 
        echo. 
        echo. 
        set /p ch= CHIFFRE MYSTERE : 
        cls 
        set /a steps+=1 
        if %ch% lss %num% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est supérieur à : %ch% 
        echo. 
        goto :_error 
        ) else if %ch% gtr %num% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        echo. 
        echo. 
        echo. 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est inférieur à : %ch% 
        echo. 
        goto :_error 
        ) else ( 
        cls 
        color e 
        echo. 
        echo BRAVO !!!!!! 
        echo %num% 
        echo. 
        echo. 
        echo NOMBRES DE TENTATIVES 
        echo %steps% fois 
        echo. 
        echo. 
        echo NIVEAU 
        if %steps% geq 20 ( 
        echo Va vite faire ton boulot !! 
        C:\Users\production\Pictures\Penguins.jpg 
        ) else if %steps% leq 1 ( 
        echo *** excelent mec *** 
        ) else if %steps% leq 2 ( 
        echo Proche de la perfection 
        ) else if %steps% leq 5 ( 
        echo Pas mal !! 
        ) else if %steps% leq 10 ( 
        echo la tete ailleur... 
        ) else if %steps% leq 20 ( 
        echo tristesssssse... !!!! 
        ) 
        ) 
        pause>nul 
        set/a steps=0 
        goto :replay 
        
        :joueur2 
        cls 
        set /p jr1= Prenom du Joueur 1 : 
        set /p jr2= Prenom du Joueur 2 : 
        set /p jr3= Prenom du Joueur 3 :
        cls 
        echo. 
        :choixniv 
        cls 
        echo MODE 2 JOUEURS 
        echo. 
        echo NV1 CHIFFRE MYSTERE DE 1-1000 
        echo. 
        echo. 
        echo 
        ===================================================
        :niv1 
        cls 
        echo %jr1% 
        echo. 
        echo ENTRE LE CHIFFRE MYSTERE 
        echo POUR %jr2% 
        echo ENTRE 1 ET 1000 
        echo 
        :again1 
        set /p cm2= : 
        if %cm2% gtr 1000 ( 
        echo Nombre inferieur a 1000 stp !! 
        timeout 2 >nul 
        goto :again1 
        ) 
        cls 
        echo %jr2% 
        echo. 
        echo ENTRE LE CHIFFRE MYSTERE 
        echo POUR %jr1% 
        echo ENTRE 1 ET 1000 
        :again2 
        set /p cm1= : 
        if %cm1% gtr 1000 ( 
        echo Nombre inferieur a 1000 stp !! 
        timeout 2 >nul 
        goto :again2 
        ) 
        cls
        echo %jr1% et %jr2%
        echo
        echo ENTRÉS LE CHIFFRE MYSTERE
        echo POUR %jr3%
        echo ENTRE 1 ET 1000
        :again3
        set /p cm3= :
        if %cm3% gtr 1000 (
        echo Nombre inférieur a 100 stp !!
        timeout 2 >nul
        goto :again3
        )
        color f6
        color a5
        color b3
        cls 
        :error1 
        color f1 
        echo. 
        echo. 
        set/p ch= %jr1% a toi de jouer : 
        cls 
        set/a steps1+=1 
        if %ch% lss %cm1% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est supérieur à : %ch% 
        echo. 
        goto :error1 
        ) else if %ch% gtr %cm1% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        echo. 
        echo. 
        echo. 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est inférieur à : %ch% 
        echo. 
        goto :error1 
        ) else ( 
        cls 
        color e 
        echo. 
        echo BRAVO %jr1%!!!!!! 
        echo %cm1% 
        color f5
        color a5
        color b3
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        timeout 4 >nul 
        ) 
        cls 
        :error2 
        color f1 
        echo. 
        echo. 
        set/p ch= %jr2% a toi de jouer : 
        cls 
        set/a steps2+=1 
        if %ch% lss %cm2% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est supérieur à : %ch% 
        echo. 
        goto :error2 
        ) else if %ch% gtr %cm2% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        echo. 
        echo. 
        echo. 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est inférieur à : %ch% 
        echo. 
        goto :error2 
        ) else ( 
        cls 
        color e 
        echo. 
        echo BRAVO %jr2%!!!!!! 
        echo %cm2% 
        color 5f
        color 1a
        color 6b 
        echo. 
        echo. 
        echo. 
        timeout 4 >nul 
        ) 
        cls
        :error3
        color f1 
        echo. 
        echo. 
        set/p ch= %jr3% a toi de jouer : 
        cls 
        set/a steps3+=1 				
        if %ch% lss %cm3% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est supérieur à : %ch% 
        echo. 
        goto :error3
        ) else if %ch% gtr %cm3% ( 
        echo. 
        echo. 
        echo. 
        echo. 
        echo Ce n'est pas le bon chiffre
        echo Reessaye encore 
        echo. 
        echo. 
        echo. 
        color F2 
        ping -n 2 127.0.0.1 >NUL 
        color F4 
        ping -n 2 127.0.0.1 >NUL 
        cls 
        echo. 
        echo Le nombre mystère est inférieur à : %ch% 
        echo. 
        goto :error2 
        )
        cls 
        color e 
        echo. 
        echo BRAVO %jr3%!!!!!! 
        echo %cm3% 
        color 5f
        color 1a
        color 6b 
        timeout 2>nul
        color 5f
        color f5
        color a4
        color 4b
        timeout 2>nul
        echo LE GAGNANT EST : 
        echo CALCUL EN COUR... 
        timeout 5 >nul 
        if %steps1% gtr %steps2% %steps3%( 
        echo =======%jr2%======== 
        echo. 
        echo. 
        echo NOMBRES DE TENTATIVES 
        echo %steps2% fois 
        ) else ( 
        echo =======%jr1%======== 
        echo.=======%jr3%========
        echo. 
        echo NOMBRES DE TENTATIVES 
        echo %steps1% fois 
        ) 
        timeout 2 >nul 
        set/a steps1=1 
        set/a steps2=1 
        set/a steps3=1
        goto :replay
        

        Discussions similaires

        Mise à jour et sécurité

        12 réponses