2016-09-13 1 views
1

Voici mon code. Ceci est essentiellement un pétales autour de la chose rose im faire. Si vous n'êtes pas familier avec ce jeu, c'est prédire la valeur du rouleau de x nombre de dés, dans lequel les dés avec les valeurs 1,2,4,6 = 0 et les dés avec les valeurs 3 = 2 et les dés avec les valeurs 5 = 4 Voici mon code.Quel est le problème avec mon code pour dire à Python la valeur de mes dés?

die1 = random.randint(1,6) 
    die2 = random.randint(1,6) 
    die3 = random.randint(1,6) 
    die4 = random.randint(1,6) 
    die5 = random.randint(1,6) 
    result = display_dice(die1, die2, die3, die4, die5) 
    roll_guess = int(input("please enter your guess for the roll:")) 
    def dicevalue(die1): 

     if die1 == 1 or die1 == 2 or die1 == 4 or die1 == 6: 
      die1 == 0 
     elif die1 == 3: 
      die1 == 2 
     elif die1 ==5: 
      die1 == 4 
     return die1 
print(dicevalue(die1)) 

J'ai aussi essayé cela et je me suis un que vous pouvez voir l'erreur

for values in die1: 
    if die1 == 1 or die1 == 2 or die1 == 4 or die1 == 6: 
     die1 == 0 
    elif die1 == 3: 
     die1 == 2 
    elif die1 ==5: 
     die1 == 4 

, je voudrais résumer ce code en termes de dés [i] pour calculer tous, mais je ne savoir comment. J'ai donc pris la longue approche pour dire à Python ce que je viens de vous dire dans le premier paragraphe. Je suis novice en python, donc si les erreurs semblent stupides, excusez ma stupidité. thanksss

+1

Quel message d'erreur obtenez-vous? Le contenu du message d'erreur peut être très utile – dodell

+0

TypeError: l'objet 'int' n'est pas itérable – zyzztheturtle

+0

Le premier def dicevalue, il n'a pas fait ce que je voulais faire:/Je ne sais pas où je me suis trompé – zyzztheturtle

Répondre

1

Vous avez:

die1 = random.randint(1,6) 
die2 = random.randint(1,6) 
die3 = random.randint(1,6) 
die4 = random.randint(1,6) 
die5 = random.randint(1,6) 
result = display_dice(die1, die2, die3, die4, die5) 
roll_guess = int(input("please enter your guess for the roll:")) 
def dicevalue(die1): 

    if die1 == 1 or die1 == 2 or die1 == 4 or die1 == 6: 
     die1 == 0 
    elif die1 == 3: 
     die1 == 2 
    elif die1 ==5: 
     die1 == 4 
    return die1 
print(dicevalue(die1)) 

Le problème est que vous ne pouvez pas utiliser die1 == 4 pour définir une valeur, il ne retournera une valeur de vérité. Vous voulez:

die1 = random.randint(1,6) 
die2 = random.randint(1,6) 
die3 = random.randint(1,6) 
die4 = random.randint(1,6) 
die5 = random.randint(1,6) 
result = display_dice(die1, die2, die3, die4, die5) 
roll_guess = int(input("please enter your guess for the roll:")) 
def dicevalue(die1): 

    if die1 == 1 or die1 == 2 or die1 == 4 or die1 == 6: 
     die1 = 0 
    elif die1 == 3: 
     die1 = 2 
    elif die1 ==5: 
     die1 = 4 
    return die1 
print(dicevalue(die1)) 

voir sous les instructions if la valeur est modifiée de == à =. Le deuxième jeu de code ne fonctionnera pas parce que die1 est une valeur int et n'est donc pas itérable (ce n'est pas un ensemble de valeurs mais une valeur unique) Si vous voulez rendre ce code plus concis, vous pouvez faire les dés:

dice = [] 
for i in range(5): 
    dies.append(random.randint(1,6)) 

et vous pouvez alors vérifier tous les dés:

for die1 in dice: 
    if die1 == 1 or die1 == 2 or die1 == 4 or die1 == 6: 
     die1 == 0 
    elif die1 == 3: 
     die1 == 2 
    elif die1 ==5: 
     die1 == 4 
+0

Remerciez vous tellement, je n'ai jamais entendu parler de ça. Informations utiles! – zyzztheturtle