Besoin d'aide pb débutant

Bon, je vais y aller par le chemin le plus court, je bloque souvent sur la même chose mais je ne vois pas l’erreur:

from random import randrange
game = 0

while déj1 == déj2 or déj1 == déj3 or déj2 == déj3:

déj1 = 0
déj1 = randrange(1, 6)
déj2 = 0
déj2 = randrange(1, 6)
déj3 = 0
déj3 = randrange(1, 6)

print("Le joueur 1, lance le dé:")
print("\nle dé est tombé sur", déj1)

print("Le joueur 2, lance le dé:")
print("\nle dé est tombé sur", déj2)

print("Le joueur 3, lance le dé:")
print("\nle dé est tombé sur", déj3)

if déj1 == déj2:
    print("Le joueur 3 gagne")
    break
elif déj3 == déj2:
    print("Le joueur 1 gagne")
    break
elif déj1 == déj3:
    print("Le joueur 2 gagne")
    break
else:
    continue

Ce code c’est un autre en légerement simplifier qui m’aurait aidé a voir le pb. Sauf que je ne le vois pas. ._.
Voilà la réponse:

print(« Le joueur 1, lance le dé: »)
^
IndentationError: unindent does not match any outer indentation level

Process finished with exit code 1

C’est un grand classique des bases de Python. Pour chaque bloc (condition (if,else elif), boucle (for, while) fonction…) il faut impérativement le même nombre d’espaces ou de tabulations devant chaque ligne du bloc.
En gros après chaque ligne se terminant par « : » ajouter x espaces pour les lignes suivantes jusqu’à la fin du bloc. C’est beaucoup plus facile à lire et c’est obligatoire.
Un conseil, ne pas utiliser les tabulations (même si c’est autorisé) elles n’ont pas la même longueur en fonctions des éditeurs.

A+

Mille merci Jelopo! Par contre j’ai encore un petit problème, le continue ne marche pas à la fin et python stope de lire quand il a effectuer les 3 joueurs…

Bonjour à tous !

Normalement, dans ton éditeur favoris (dans les préférences), tu dois pouvoir régler ce problème. Mais comme te l’a si bien dit Jelopo, il est déconseillé d’utiliser les tabulations. Une règle tacite veut que l’indentation soit de 4 espaces à chaque fois…

Personnellement, j’utilise Geany pour mes scripts (Python, bash…) et j’en suis très content… Si tu ne l’a pas, il te suffit de faire un simple :

$ sudo apt update && sudo apt install geany

RQ : Pour l’indentation : Edition / Préférences / Editeur / Indentation

Pour ce qui est de ton dernier problème, tu peux peut-être essayer avec une boucle infinie, du genre :

a = 1
While a != 0:
    << Ton code >>

Cordialement :slight_smile:

Bonjour,

Pour débogger un script, j’ajoute un print à chaque point de passage.
Ensuite j’isole au maximum les parties en les commentant. Au besoin je crée un script temporaire avec juste la partie qui ne fonctionne pas.

Relis bien ce que tu demande à la boucle. En français: Tant que la valeur d’un des 2 dés est identique je continue. C’est bien ce que tu veux ?

En effet il serait certainement plus simple de suivre le conseil de @walker29, et quand la condition est réalisée dans un if de passer a à 0

Bon courage.

A+

Merci à tous pour vos conseils :slight_smile: