Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Tombola
Auteur Message
Répondre en citant
Message Tombola 
Salut à tous et à toutes !
Voilà, j'aimerai faire un petit batch qui tirerais au sort un certains nombre de numéros (le principe même de la tombola quoi).
Ce que j'aimerai c'est pouvoir au début choisir :
-Choisir le nombre de joueur
-Pouvoir attribuer un nom à chaque joueur
-Choisir un nombre de numéros gagnants
-Que le logiciel m'affiche les noms des gagnants ainsi que leurs numéros
-Que le programme ai pour minimum 1 et pour maximum un nombre de mon choix Smile

Merci d'avance !
AukCloud



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Tombola 
Bonjour

Citation:
Voilà, j'aimerai faire un petit batch qui tirerais au sort un certains nombre de numéros (le principe même de la tombola quoi).

je pense qu'en cherchant un peu dans la zone jeux tu trouveras des réponses pour les nombres aléatoires, suffit de stocker le tout dans un fichier texte et de lire ce fichier et de faire une comparaison.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message Tombola 
Salut,

C'est bien la section "batch sur mesure" ici ?
On dirait que je suis motivé aujourd'hui.... et commenté en plus ....

Cadeau Wink
Code:

@echo off
rem definition du fichier joueurs
set fichier_joueurs=liste_joueurs.ini
rem definition du fichier gagnant
set fichier_gagnants=liste_gagnants.ini
rem definition du nombre de gagnant par defaut
set nb_win=3

rem menu principal
:menu
rem gestion d'erreur pour %nb_win%
if /I not %nb_win% GTR 1 if /I not %nb_win% LSS 100 echo nombre de gagnant entre 1 et 99&pause&goto nb_win
rem definition du nombre de joueurs si pas deja fait
if "%nb_joueurs%"=="" if exist "%fichier_joueurs%" for /f "tokens=1,2 delims=;" %%i in ('type "%fichier_joueurs%"') do set nb_joueurs=%%i
if "%nb_joueurs%"=="" set nb_joueurs=0
rem supression de "[" dans %nb_joueurs%
set nb_joueurs=%nb_joueurs:[=%
rem supression de "]" dans %nb_joueurs%
set nb_joueurs=%nb_joueurs:]=%
cls
rem reset %choix%
set choix=
set etat_gagnant=
if exist "%fichier_gagnants%" set etat_gagnant=[OK]
echo 1: definir joueurs [%nb_joueurs% inscrit]
echo 2: nombre de gagnants [%nb_win%]
echo 3: definir les gagnants %etat_gagnant%
echo 4: afficher les gagnants
set /p choix=-^>
if "%choix%"=="1" goto joueurs
if "%choix%"=="2" goto nb_win
if "%choix%"=="3" goto def_gagnants
if "%choix%"=="4" goto aff_gagnants
goto menu

rem section de definition des joueurs
:joueurs
cls
set choix=
echo 1: cr‚er liste
echo 2: ajouter … la liste existante
set /p choix=-^>
if "%choix%"=="1" goto creer
if "%choix%"=="2" if not exist "%fichier_joueurs%" (echo "%fichier_joueurs%" n'existe pas.&pause&goto creer) Else goto ajouter
goto menu

rem section de création des joueurs
:creer
rem si %fichier_joueurs% existe, demander une confirmation pour le reset du fichier
if exist "%fichier_joueurs%" (
echo tapez un caractere puis [ENTREZ] pour confirmer la suppression de la liste.
set choix=
set /p choix=-^>
if "%choix%"=="" goto menu
)
set nb_joueurs=0
rem reset du fichier
echo.>"%fichier_joueurs%"
rem section d'ajout des joueurs
:ajouter
set /a nb_joueurs+=1
set choix=
cls
rem affichage des joueurs
for /f "tokens=1,2 delims=;" %%i in ('type "%fichier_joueurs%"') do echo Num %%i^: %%j
echo.
echo tapez le nom du joueur ou [ENTREZ] pour valider.
set /p choix=joueur %nb_joueurs% -^>
rem si l'utilisateur valide on annule le numero du joueur en cour et on retourne au menu
if "%choix%"=="" set /a nb_joueurs-=1&goto menu
rem inscription du joueur dans le fichier
echo [%nb_joueurs%];%choix% >>"%fichier_joueurs%"
goto ajouter

rem section de definition du nombre de gagnant pour l'instance en cours
:nb_win
cls
set choix=
echo nombre de gagnants ?
set /p choix=-^>
if not "%choix%"=="" set nb_win=%choix%
goto menu

rem section de definition des gagnants
:def_gagnants
cls
rem gestion d'erreur pour "%fichier_joueurs%"
if not exist "%fichier_joueurs%" echo pas de liste de joueurs&pause&goto creer
rem  gestion d'erreur pour %nb_win% et %nb_joueurs%
if /I %nb_win% GEQ %nb_joueurs% echo nombre de gagnant invalide&pause&goto nb_win
rem demander une confirmation pour le reset du fichier
if exist "%fichier_gagnants%" (
echo tapez un caractere puis [ENTREZ] pour confirmer le remplacement de la liste.
set choix=
set /p choix=-^>
if "%choix%"=="" goto menu
)
echo en cours...
rem reset du fichier
echo.>"%fichier_gagnants%"
rem activation des expansions pour pouvoir utiliser les variables à l'interieur des boucles
setlocal enabledelayedexpansion
set i2=0
for /l %%i in (1,1,%nb_win%) do (set tmp_var2=%%i
rem l'appele de call est utile pour pouvoir utiliser %tmp_var2% en tant que variable deja defini dans l'environement en cour d'utilisation
call:def_1)
endlocal
goto menu

rem module d'extention pour l'etiquette def_gagnants
:def_1
rem reset de %tmp_var%
set tmp_var=
rem l'appele de call est utile pour pouvoir utiliser !gagnant_%tmp_var2%! en tant que variable deja defini dans l'environement en cour d'utilisation
call:def_2 "%tmp_var2%"
rem si le gagnant est déjà dans le fichier on defini %tmp_var%
for /f "tokens=1,2 delims=;" %%a in ('type "%fichier_gagnants%" ^|find "[!gagnant_%tmp_var2%!]"') do set tmp_var=1
rem si %tmp_var% = 1 on relance la definition du gagnant en cours
if "!tmp_var!"=="1" goto def_1
rem si le numero de gagnant = 0 on relance la definition du gagnant en cours
if "!gagnant_%tmp_var2%!"=="0" goto def_1
rem écriture du gagnant en cours dans le fichier
for /f "tokens=1,2 delims=;" %%a in ('type "%fichier_joueurs%" ^|find "[!gagnant_%tmp_var2%!]"') do echo %%a;%%b >>"%fichier_gagnants%"
goto:eof

rem module d'extention pour l'etiquette def_gagnants
:def_2
rem definition du numero de gagnant (de 0 à %nb_joueurs%)
set /a gagnant_%~1=%random%%%%nb_joueurs%
goto:eof

rem section d'affichage des gagnants
:aff_gagnants
if not exist "%fichier_gagnants%" echo pas de liste de gagnants&pause&goto menu
cls
echo LES GAGNANTS SONT^:
echo.
rem affichage des gagnants
setlocal enabledelayedexpansion
set i1=0
for /f "tokens=1,2 delims=;" %%i in ('type "%fichier_gagnants%"') do (
set /a i1+=1
set c1=!i1!       .
set c2=%%i         .
echo - Gagnant !c1:~0,4!- Num !c2:~0,6!- %%j
)
endlocal
echo.
pause
goto menu




Dernière édition par Cαutex le Mar 10 Avr 2012 - 17:07; édité 1 fois

______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message Tombola 
j'aime beaucoup !!
Bien joué Okay



Répondre en citant
Message Tombola 
Merci l'ami !



Message Tombola 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch