CMD - commande pour donner un nom aléatoire
Résolu
PlayFox
-
PlayFox -
PlayFox -
Bonjours,
J'essaye de créer un petit : "feuille,caillou,ciseau" mais j'ai un problème avec mon code qui génère une réponse aléatoire à son choix d'avant.
Le problème c'est qu'il peut me donner uniquement que 2 possibilités. si je rajoute ça
La commande ne fonctionne plus.
Comment faire ?
J'essaye de créer un petit : "feuille,caillou,ciseau" mais j'ai un problème avec mon code qui génère une réponse aléatoire à son choix d'avant.
:loop
set /a num=%random% %% 2
if %num% equ 0 (echo Rock - DRAW) else (echo Paper - YOU LOOSE)
pause
goto :loop
Le problème c'est qu'il peut me donner uniquement que 2 possibilités. si je rajoute ça
:loop
set /a num=%random% %% 2
if %num% equ 0 (echo Rock - DRAW) else (echo Paper - YOU LOOSE) else (echo Scissor - YOU WIN)
pause
goto :loop
La commande ne fonctionne plus.
Comment faire ?
A voir également:
- CMD - commande pour donner un nom aléatoire
- Invite de commande - Guide
- Commande terminal mac - Guide
- Scannow cmd - Guide
- Nom pour facebook stylé - Guide
- Récupérer clé windows cmd - Guide
2 réponses
Salut,
Déjà il manque le reste du code car au vu des messages c'est qu'avant d'arriver dans la boucle on sait déjà ce qu'a choisi le joueur : ROCK ???
Après le goto loop va boucler sur le test sans que l'utilisateur fasse un nouveau choix, c'est sans fin.
Puis pour avoir 0, 1 ou 2, donc 3 réponses, il faut un paramètre 3 sur round
Et le test serait alors :
Déjà il manque le reste du code car au vu des messages c'est qu'avant d'arriver dans la boucle on sait déjà ce qu'a choisi le joueur : ROCK ???
Après le goto loop va boucler sur le test sans que l'utilisateur fasse un nouveau choix, c'est sans fin.
Puis pour avoir 0, 1 ou 2, donc 3 réponses, il faut un paramètre 3 sur round
Et le test serait alors :
set /a num=%random% %% 3 IF "%num%" equ 0 ( echo Rock - DRAW ) ELSE ( IF "%num%" equ 1 ( echo Paper - YOU LOOSE ) ELSE ( echo Scissor - YOU WIN ) )
La syntaxe exacte est
Des vues partielles ce n'est pas terrible, j'ai réécris le tout
set /a num=%random%%%3
Des vues partielles ce n'est pas terrible, j'ai réécris le tout
@echo off CLS :debut echo. echo. Rock (1) echo. Paper (2) echo. Scissors (3) echo. set /p choix=Your choice ? echo. if %choix%==1 set joueur=Rock& goto suite if %choix%==2 set joueur=Paper& goto suite if %choix%==3 set joueur=Scissors& goto suite if %choix%==0 exit goto debut :suite set /a num=%random%%%3+1 if %num%==1 set ordi=Rock if %num%==2 set ordi=Paper if %num%==3 set ordi=Scissors echo. | set /p Dummy=Match %joueur% VS %ordi% - IF %joueur% equ %ordi% (echo DRAW ) ELSE ( IF %joueur% equ Rock if %ordi% equ Paper (echo YOU LOOSE ) ELSE echo YOU WIN IF %joueur% equ Paper if %ordi% equ Rock (echo YOU WIN ) ELSE echo YOU LOOSE IF %joueur% equ Scissors if %ordi% equ Rock (echo YOU LOOSE ) ELSE echo YOU WIN ) echo. goto debut
Cependant t'as commande ne fonctionne pas car elle me propose uniquement le ciseaux alors que cela devrait être aléatoire.
Pour te préciser sur une chose, dans le "jeu" tu as le choix de prendre soit caillou, papier ou ciseau donc c'est pour ça que on connait ce que le joueur à choisi. peut-être que cela va plus de parler
--------------------------------------------------------------------------------------------------
echo.
echo.
echo. Rock (1)
echo.
echo.
echo. Paper (2)
echo.
echo.
echo. Scisossrs (3)
echo.
echo.
set /p joueur=
if %joueur%==1 goto Rock
if %joueur%==2
if %joueur%==2 goto Papergoto Scisossrs
) else (
goto nbrjr
:Rock
cls
echo.
--------------------------------------------------------------------------------------------------
la suite serai ta ligne de code mais elle n'est pas aléatoire. Elle choisi toujours le ciseau.
Si tu veux le code complet demande, pas de soucis
;)