Mon fichier BATCH ne s’exécute pas correctement

Résolu
Alvin1614 Messages postés 115 Statut Membre -  
valouvalivalo Messages postés 153 Statut Membre -
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. valouvalivalo Messages postés 153 Statut Membre 38
     
    Bonnour, plusieurs erreurs, la plupart situé au niveau du joueur 3.
    0
  2. valouvalivalo Messages postés 153 Statut Membre 38
     
    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é :)
    0
  3. valouvalivalo Messages postés 153 Statut Membre 38
     
    :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
    
    0