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

Python Discussion :

Problème combinaisons Mastermind


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Problème combinaisons Mastermind
    Bonjour,

    J'ai un problème lors de l'éliminations des combinaisons possible pendant une partie de mastermind lorsque l'ordinateur doit deviner une combinaison choisie par l'utilisateur .
    Voici mon code :
    Et l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        JeuOrdi()
      File "/Users/Adrien/Desktop/MASTERMIND.py", line 106, in JeuOrdi
        guess = optionList[randint(0,len(optionList)-1)]
      File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py", line 218, in randint
        return self.randrange(a, b+1)
      File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py", line 196, in randrange
        raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
    ValueError: empty range for randrange() (0,0, 0)
    Merci d'avance !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par Naifman Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        JeuOrdi()
      File "/Users/Adrien/Desktop/MASTERMIND.py", line 106, in JeuOrdi
        guess = optionList[randint(0,len(optionList)-1)]
      File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py", line 218, in randint
        return self.randrange(a, b+1)
      File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py", line 196, in randrange
        raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
    ValueError: empty range for randrange() (0,0, 0)
    Bonsoir,
    L'erreur dit simplement que dans le script MASTERMIND.py, la ligne 106 est:
    guess = optionList[randint(0,len(optionList)-1)]
    et qu'elle pose un problème car "len(optionList)-1" doit être inférieur à 0.

    Voilà…
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> from random import randint
    >>> randint(0, -1)
    Traceback (most recent call last):
      File "<pyshell#11>", line 1, in <module>
        randint(0, -1)
      File "/usr/lib/python3.4/random.py", line 216, in randint
        return self.randrange(a, b+1)
      File "/usr/lib/python3.4/random.py", line 194, in randrange
        raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
    ValueError: empty range for randrange() (0,0, 0)
    >>>
    C'est bien la console!

    Clodion

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse !

    J'avais compris le problème , mais ce que je comprend moins , c'est comment le résoudre !

    Merci d'avance !

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Personne ?

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    si tu avais utilisé un éditeur python quelque peu évolué (moi j'utilise Spyder) tu aurais eu une indication précieuse. Sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      for i in range(len(optionList)):
    j'ai l'avertissement :
    Undefined Name optionList
    D'après la documentation Python pour les variables globales c'est indiqué :
    Le principe des variables globales

    On ne peut faire plus simple. On déclare dans le corps de notre programme, donc en dehors de tout corps de fonction, une variable, tout ce qu'il y a de plus normal. Dans le corps d'une fonction qui doit modifier cette variable (changer sa valeur par affectation), on déclare à Python que la variable qui doit être utilisée dans ce corps est globale.

    Python va regarder dans les différents espaces : celui de la fonction, celui dans lequel la fonction a été appelée… ainsi de suite jusqu'à mettre la main sur notre variable. S'il la trouve, il va nous donner le plein accès à cette variable dans le corps de la fonction.

    Cela signifie que nous pouvons y accéder en lecture (comme c'est le cas sans avoir besoin de la définir comme variable globale) mais aussi en écriture. Une fonction peut donc ainsi changer la valeur d'une variable directement.
    Tu dois déclarer ta variable globale dans le corps du programme (par exemple au début ) exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    optionList=[] #liste variable
     
    def SecondAlgoStep(secret,nb_c):
        global optionList
    Comme je suis débutant en python si je raconte une bêtise n'hésitez pas à me corriger.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour ,

    Merci pour votre réponse mais le problème vient du code en lui même car même en déclarant la variable dans le module en lui même , j'ai toujours la même erreur . C'est un problème dans l'algorithme et pas dans la syntaxe python !

    Merci d'avance pour vos réponses .

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    Hello,
    Naifman c'est toi qui a enlevé ton code ? :
    Voici mon code :
    Et l'erreur :
    Si c'est le cas ce n'est pas trop correct vis à vis des gens du forum car quand on fait une modification dans un message , on indique que l'on a modifié le message, sinon les personnes qui lisent le message risquent de ne rien comprendre.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. [WS 2008 R2] Problème combinaisons touches sur serveur distant
    Par neGo33 dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 03/05/2013, 10h43
  2. Problème combinaisons possibles
    Par flo_0 dans le forum Débuter
    Réponses: 2
    Dernier message: 08/02/2013, 17h29
  3. Problème combinaison StrConv et SelStart
    Par js8bleu dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/06/2011, 10h03
  4. Problème en mastermind
    Par tona_sadi dans le forum C
    Réponses: 2
    Dernier message: 13/03/2011, 14h04
  5. problème avec un mastermind
    Par snake264 dans le forum C
    Réponses: 20
    Dernier message: 05/02/2008, 14h45

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