IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

commande echo desactivé [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut commande echo desactivé
    Salut,

    Je fais un jeu du + ou moins, mais j'ai un soucis, j'instaure des niveaux de difficultés, donc je met des if et des set, et des echo.
    Mais ca pose problème:
    je n'ai pas mis @echo on pour plus de visibilité (je tiens à préciser que ça fait environ 1-2h que j'ai commencé à apprendre le batch, desolé si il y a des notions que je ne comprends pas.)

    script:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    :again
    echo Bienvenue dans le jeu du + ou moins ! Entre ton niveau de difficulté !
    set /p niveau=1 pour facile, 2 pour difficile, 3 pour impossible: 
    
    if niveau EQU 1 (set /a secret=%random% %% 100 + 1
    	echo Chiffre entre 1 et 100, 10 chances)
    if niveau EQU 2 (set /a secret=%random% %% 1000 + 1
    	echo Chiffre entre 1 et 1000, 25 chances)
    if niveau EQU 3 (set /a secret=%random% %% 10000 + 1
    	echo Chiffre entre 1 et 10000, 50 chances)
    
    echo %secret%
    
    set tentative=0
    
    :essai
    if tentative == 10 (if niveau == 1 (goto perdu))
    if tentative == 25 (if niveau == 2 (goto perdu))
    if tentative == 50 (if niveau == 3 (goto perdu))
    
    set /p nombre=
    
    if %nombre% LSS %secret% (echo PLUS !
    	goto :essai
    	set /a tentative = %tentative% + 1)
    if %nombre% GTR %secret% (echo MOINS !
    	goto :essai
    	set /a tentative = %tentative% + 1)
    if %nombre% == %secret% (echo Bravo, c'etait bien %secret%, bien joue !
    	goto :gagne)
    
    :gagne
    echo.
    echo Tu veux rejouer ?
    set /p encore=1 si oui, 0 si non: 
    if %encore% == 1 (cls 
    	goto again)
    echo D'accord ! Merci d'avoir joue !
    pause
    
    :perdu
    echo.
    echo Tu as epuise toutes tes chances le nombre etait %secret%, essaye un niveau de difficulte plus faible !
    echo Tu veux rejouer ?
    set /p encore=1 si oui, 0 si non: 
    if %encore% == 1 (cls 
    	goto again)
    echo D'accord ! Merci d'avoir joue !
    pause
    log:
    C:\Users\PC-HP\Desktop>echo Bienvenue dans le jeu du + ou moins ! Entre ton nive
    au de difficult├® !
    Bienvenue dans le jeu du + ou moins ! Entre ton niveau de difficult├® !

    C:\Users\PC-HP\Desktop>set /p niveau=1 pour facile, 2 pour difficile, 3 pour imp
    ossible:
    1 pour facile, 2 pour difficile, 3 pour impossible: 2

    C:\Users\PC-HP\Desktop>if niveau EQU 1 (
    set /a secret=22467 % 100 + 1
    echo Chiffre entre 1 et 100, 10 chances
    )

    C:\Users\PC-HP\Desktop>if niveau EQU 2 (
    set /a secret=13642 % 1000 + 1
    echo Chiffre entre 1 et 1000, 25 chances
    )

    C:\Users\PC-HP\Desktop>if niveau EQU 3 (
    set /a secret=19091 % 10000 + 1
    echo Chiffre entre 1 et 10000, 50 chances
    )

    C:\Users\PC-HP\Desktop>echo
    Commande ECHO activée.

    C:\Users\PC-HP\Desktop>set tentative=0

    C:\Users\PC-HP\Desktop>if tentative == 10 (if niveau == 1 (goto perdu ) )

    C:\Users\PC-HP\Desktop>if tentative == 25 (if niveau == 2 (goto perdu ) )

    C:\Users\PC-HP\Desktop>if tentative == 50 (if niveau == 3 (goto perdu ) )

    C:\Users\PC-HP\Desktop>set /p nombre=
    3

    C:\Users\PC-HP\Desktop>if 3 LSS (echo PLUS !

    C:\Users\PC-HP\Desktop>goto :essai

    C:\Users\PC-HP\Desktop>if tentative == 10 (if niveau == 1 (goto perdu ) )

    C:\Users\PC-HP\Desktop>if tentative == 25 (if niveau == 2 (goto perdu ) )

    C:\Users\PC-HP\Desktop>if tentative == 50 (if niveau == 3 (goto perdu ) )

    C:\Users\PC-HP\Desktop>set /p nombre=
    On peut voir que ça bug lorsque je lui demande d'affichier la variable secret, je suppose que c'est parce que j'ai initialisé une variable dans un if, mais je ne sais pas comment corrigé ça.

    Dans la console, je tape respectivement: 2, puis 3

    Merci pour votre aide !

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    pour faire un random entre 1 et 100 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /a secret=%random%%%100+1

  3. #3
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    Salut, c'est bien ce que j'ai fais ^^,
    merci quand meme.

  4. #4
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    J'ai essayé ta solution mais ça pose toujours le même problème, la variable secret est vide.

    Merci tout de même.

  5. #5
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    :again
    set secret=
    echo Bienvenue dans le jeu du + ou moins ! Entre ton niveau de difficulté !
    set /p niveau=1 pour facile, 2 pour difficile, 3 pour impossible: 
    
    if %niveau% EQU 1 (set /a secret=%random%%%100+1
    	echo Chiffre entre 1 et 100, 10 chances)
    echo %secret%

  6. #6
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    Toujours rien, mais je vois que j'avais oublié les % pour la variable niveau, malgré tout, meme soucis...

    Merci encore

  7. #7
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    À mon avis Sachadee, tu t'es surement accoutumé à un autre langage que pour qu'un test "if variable equ 1" te semble tout à fait normal en batch.

    Pareil, dans une opération, dans un script, il faut effectivement dédoubler le modulo pour qu'il soit considéré comme tel.

    Allez sachadee, il faut reprendre un peu de recule

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. faire la commande echo en C
    Par jonbienvenue dans le forum C
    Réponses: 3
    Dernier message: 12/04/2007, 21h42
  2. Réponses: 3
    Dernier message: 07/04/2007, 14h35
  3. Aide avec commande ECHO
    Par lafmart dans le forum Langage
    Réponses: 1
    Dernier message: 04/02/2007, 06h06
  4. [Débutant] Implémentation commande echo
    Par Tuxico dans le forum C
    Réponses: 14
    Dernier message: 10/10/2006, 14h49
  5. Comment aller a la ligne avec la commande ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 23/06/2004, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo