Mon fichier BATCH ne s’exécute pas correctement [Résolu]

Alvin1614 23 Messages postés lundi 24 avril 2017Date d'inscription 7 octobre 2017 Dernière intervention - 24 avril 2017 à 20:04 - Dernière réponse : valouvalivalo 131 Messages postés lundi 16 février 2015Date d'inscription 25 juin 2017 Dernière intervention
- 24 avril 2017 à 22:16
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
Afficher la suite 
23Messages postés lundi 24 avril 2017Date d'inscription 7 octobre 2017 Dernière intervention

3 réponses

Répondre au sujet
valouvalivalo 131 Messages postés lundi 16 février 2015Date d'inscription 25 juin 2017 Dernière intervention - 24 avril 2017 à 20:33
0
Utile
Bonnour, plusieurs erreurs, la plupart situé au niveau du joueur 3.
Commenter la réponse de valouvalivalo
valouvalivalo 131 Messages postés lundi 16 février 2015Date d'inscription 25 juin 2017 Dernière intervention - Modifié par valouvalivalo le 24/04/2017 à 22:19
0
Utile
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é :)
Commenter la réponse de valouvalivalo
valouvalivalo 131 Messages postés lundi 16 février 2015Date d'inscription 25 juin 2017 Dernière intervention - 24 avril 2017 à 22:16
0
Utile
: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
Commenter la réponse de valouvalivalo