Salut à tous,

Voilà ce que je dois faire:

Travail à faire : Ecrire un script intitulé jeu qui consiste à faire trouver par l'utilisateur la valeur d'un entier x en un nombre limité de coups.

Si l'utilisateur saisit une valeur supérieure à x on affichera "trop grand", si elle est inférieure on affichera "trop petit" et enfin si l'utilisateur trouve la valeur exacte on affichera "gagne !!". A chaque essai on affichera également le nombre d'essais restants. A la fin si l'utilisateur n'a pas trouvé x on affichera "perdu !!".

Le nombre d'essais sera fixé par une variable nbcoups et la valeur de x sera tirée aléatoirement grâce à la variable système RANDOM. Utilisez le modulo pour réduire l'intervalle du tirage.

Exemple: si x entre [0,20] alors nbcoups=5


et voilà ce que j'ai fait:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@écho off
cls


set x=%RANDOM%
set nbcoups=5

:début
set /p val=Saisir un nombre entier entre 0 et 20 inclus:
if i/ %val% GTR %x% echo Trop grand… & goto cprest
if i/ %val% LSS %x% echo Trop petit & goto cprest
if i/ %val% EQU %x% echo Gagné !!! & goto fin

:cprest
set /a nbcoups=%nbcoups%-1
if i/ %nbcoups% GTR 0 echo Il vous reste %nbcoups% coups… & goto début
if i/ %nbcoups% EQU 0 echo Perdu !!!

:fin

le problème, c'est que ça m'affiche "Trop grand..." ou "Trop petit" mais après ça m'affiche "4 était innatendu".

Donc voilà, j'ai 2 problèmes en somme: le script bug au niveau de "set /a nbcoups=%nbcoups%-1" je pense, et j'aimerai aussi que random pioche dans l'intervalle [0 ; 20] et pas dans l'intervalle [0 : 32767]...

Merci d'avance pour vos futurs réponses, bye