• 4 heures
  • Facile

Mis à jour le 30/01/2018

TP : Améliorons notre script

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Nous allons reprendre notre jeu du plus ou moins afin de l'améliorer.

Préparons-nous

Commençons par regarder notre code.
Maintenant que vous êtes plus à l'aise avec Batch, voici ce que nous allons essayer de réaliser :

  • Créer dix niveaux de difficulté ; plus le niveau est élevé, plus le nombre maximum choisi par l'ordinateur augmente.

  • Proposer à la fin de recommencer ou de quitter le programme.

  • Dire en combien de coups l'utilisateur a trouvé la réponse.

  • Enregistrer son score dans un fichier

C'est déjà pas mal de boulot, alors c'est parti ! :zorro::pirate:
Bonne chance moussaillon !

Lancons-nous !

Des indices ?
Vraiment ? :-°
Mais oui bien sûr que je vais vous en donner, tout n'est pas simple...

Indice 1

Il va falloir une variable nombre Min et une variable nombre Max qui vont changer en fonction de la difficulté.

Indice 2

Il faut utiliser la commande goto à de nouveaux endroits.

Indice 3

Pour fermer, il faut utiliser la commande exit.

Voilà, maintenant en avant pour la correction ! ;)

Code final

Et voici, le code final ! ;)

@echo off

set nombreMin=0
set nombreMax=100
set nombreCoups=0

:choix_difficulte
  set /p difficulte=Choisissez un niveau de difficulte, entre 1 et 10 : 
    if %difficulte%==1 set nombreMax=10
	if %difficulte%==2 set nombreMax=100
	if %difficulte%==3 set nombreMax=500
	if %difficulte%==4 set nombreMax=1000
	if %difficulte%==5 set nombreMax=1500
	if %difficulte%==6 set nombreMax=2000
	if %difficulte%==7 set nombreMax=5000
	if %difficulte%==8 set nombreMax=10000
	if %difficulte%==9 set nombreMax=15000
	if %difficulte%==10 set nombreMax=30000

:: Choisissons un nombre aléatoire.
:nombre_alea
    set nombremystere=%RANDOM%
    if %nombremystere% gtr %nombreMax% goto nombre_alea
    if %nombremystere% lss %nombreMin% goto nombre_alea

:debut
    set /p nombrechoisi=Choisis un nombre :
    set /a nombreCoups=%nombreCoups%+1
    if %nombrechoisi% lss %nombremystere% goto superieur
    if %nombrechoisi% gtr %nombremystere% goto inferieur
    goto fin

:superieur
    echo Le nombre mystere est superieur.
    goto debut

:inferieur
    echo Le nombre mystere est inferieur.
    goto debut

:fin
	echo Bien joue ! Ton as gagne en %nombreCoups% coup(s).
    if not exist scores.txt (
        echo Nb coups - Niveau > scores.txt
    )
	echo %nombreCoups% - %difficulte% >> scores.txt
	set /p recommencer=Voulez-vous recommencer ? (1 = oui ; 2 = non) : 
	if %recommencer%==1 ( goto choix_difficulte ) else ( exit )

pause

Et voilà pour le jeu, vous pouvez toujours lui ajouter de nouvelles fonctionnalités si vous voulez !

Exemple de certificat de réussite
Exemple de certificat de réussite