inconnito2 | Je dois faire un mastermind pour mon projet de terminale S mais en réinstallant python j'ai eu un problème avec mon programme à la ligne 67. Python affiche "TypeError: 'NoneType' object is not iterable". Si quelqu'un pourrait également m'aider pour changer les chiffres à la fin en couleurs? Merci de votre aide.
Code :
- # Voici la fonction qui présente le jeu et qui propose au joueur de voir les règles.
- def Present():
- print("Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz en 1962" )
- print("Voulez-vous voir les règles? Si oui ecrivez 'ok', si non tapez sur une touche quelconque, puis appuyez sur la touche 'Entrée'." )
- Ouiounon = input()
- if Ouiounon == 'ok':
- print("L'ordinateur choisit une combinaison de quatre chiffres allant de 1 à 4" )
- print("Le joueur doit ensuite découvrir cette combinaison en proposant des combinaisons de chiffres qu'il crées," )
- print("Pour l'aider, l'ordinateur indiquera le nombre de chiffres bien et mal positionnés de la combinaison," )
- print("Le nombre de chiffres absents de la combinaison ne sera en revanche pas donné." )
- print("" )
- #Voici la fonction qui gère les erreurs de saisie.
- def Erreur(Liste):
- try:
- Numero = int(input())
- while (Numero < 1) or (Numero > 4) or (Numero != int(Numero)):
- Numero = int(input("Tu dois entrer un entier naturel compris entre 1 et 4, entre un autre chiffre: " ))
- except (ValueError, TypeError):
- print("Erreur lors de la lecture de ton chiffre," )
- print("Tu dois entrer un entier naturel compris entre 1 et 4, entre un autre chiffre: " )
- Erreur(Liste)
- # A l'intérieur de la boucle principale, on insère une fonction qui compte et affiche les chiffres bien placés.
- def Bienplaces():
- Bien = 0
- for b in range(Nombre):
- if Reponse[b] == Code_bis[b]:
- Bien += 1
- Code_bis[b] = -98
- Reponse[b] = -38
- print("Appuie" , Bien, "fois sur le bouton du bas de la brique (Nombre de biens placés)." )
- return Bien
- # Ainsi qu'une fonction qui compte et affiche les chiffres mal placés.
- def Malplaces():
- Mal = 0
- for i in range(0, 4, 1):
- for j in range(0, 4, 1):
- if (Code_bis[i] == Reponse[j]) and (i != j):
- Mal += 1
- Code_bis[i] = -27
- Reponse[j] = -12
- print("Appuie" , Mal, "fois sur le bouton du milieu de la brique (Nombre de mal placés)." )
- return Mal
- # Corps du Programme:
- # On importe les fonctions "Aléatoire" pour que l'ordinateur génère le code à trouver.
- from random import *
- Present()
- Compteur = 0
- Nombre = 4
- Nbmax = 4
- Essaismax = int(input("Entrez le nombre d'essais maximum pour trouver une combinaison : " ))
- x = 0
- print("" )
- print("Entrez votre combinaison." )
- # Ceci est la boucle qui génère le Code, en prévoyant les erreurs.
- Code = [0] * 4
- for x in range(0, 4 ,1):
- Code = Erreur(Code)
- # Ceci est la fonction "tuple" qui rend invariable le Code.
- tupCode = tuple(Code)
- print("" )
- print("Vous devez trouver la combinaison du joueur en" , Essaismax, " essais maximum." )
- print("" )
- # Ceci est la boucle des propositions du joueur, c'est la boucle principale du programme.
- while Compteur < Essaismax :
- print("Entrez une combinaison." )
- Code_bis = list(tupCode)
- # Ceci est la boucle qui génère la Reponse du joueur, en prévoyant les erreurs.
- Reponse = [0] * 4
- for x in range(0, 4 ,1):
- Reponse = Erreur(Reponse)
- print(Reponse)
- # On appelle les fonctions qui "diagnostiquent" la Reponse.
- Bien = Bienplaces()
- Mal = Malplaces()
- # Enfin, voici le compteur d'essais et le message de réponse qui s'affichent en fin de boucle.
- Trouve = (Bien == Nombre)
- if Trouve:
- print("Bravo, tu as trouvé la bonne combinaison! En seulement" , Compteur + 1, "essais!" )
- Compteur = 1000
- elif (Essaismax - Compteur - 1 != 0):
- print("Essaie encore, il te reste encore" , Essaismax - Compteur - 1, "essais." )
- Compteur += 1
- if (Essaismax - Compteur == 0) and (not Trouve):
- print("Tu as épuisé tous tes essais -----> Perdu! La bonne combinaison était:" , Code, "! Dommage!" )
|
Message édité par inconnito2 le 28-12-2014 à 12:33:59
|