Problème avec tuple sur Python 3.4.1

Problème avec tuple sur Python 3.4.1 - Algo - Programmation

Marsh Posté le 28-12-2014 à 11:41:10    

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 :
  1. # Voici la fonction qui présente le jeu et qui propose au joueur de voir les règles.
  2. def Present():
  3.     print("Le Mastermind est un jeu de société, de réflexion, et de déduction, inventé par Mordecai Meirowitz en 1962" )
  4.     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'." )
  5.     Ouiounon = input()
  6.     if Ouiounon == 'ok':
  7.         print("L'ordinateur choisit une combinaison de quatre chiffres allant de 1 à 4" )
  8.         print("Le joueur doit ensuite découvrir cette combinaison en proposant des combinaisons de chiffres qu'il crées," )
  9.         print("Pour l'aider, l'ordinateur indiquera le nombre de chiffres bien et mal positionnés de la combinaison," )
  10.         print("Le nombre de chiffres absents de la combinaison ne sera en revanche pas donné." )
  11.         print("" )
  12. #Voici la fonction qui gère les erreurs de saisie.
  13. def Erreur(Liste):
  14.     try:
  15.         Numero = int(input())
  16.         while (Numero < 1) or (Numero > 4) or (Numero != int(Numero)):
  17.             Numero = int(input("Tu dois entrer un entier naturel compris entre 1 et 4, entre un autre chiffre: " ))
  18.     except (ValueError, TypeError):
  19.         print("Erreur lors de la lecture de ton chiffre," )
  20.         print("Tu dois entrer un entier naturel compris entre 1 et 4, entre un autre chiffre: " )
  21.         Erreur(Liste)
  22. # A l'intérieur de la boucle principale, on insère une fonction qui compte et affiche les chiffres bien placés.
  23. def Bienplaces():
  24.     Bien = 0
  25.     for b in range(Nombre):
  26.         if Reponse[b] == Code_bis[b]:
  27.             Bien += 1
  28.             Code_bis[b] = -98
  29.             Reponse[b] = -38
  30.     print("Appuie" , Bien, "fois sur le bouton du bas de la brique (Nombre de biens placés)." )
  31.     return Bien
  32. # Ainsi qu'une fonction qui compte et affiche les chiffres mal placés.
  33. def Malplaces():
  34.     Mal = 0
  35.     for i in range(0, 4, 1):
  36.         for j in range(0, 4, 1):
  37.             if (Code_bis[i] == Reponse[j]) and (i != j):
  38.                 Mal += 1
  39.                 Code_bis[i] = -27
  40.                 Reponse[j] = -12 
  41.     print("Appuie" , Mal, "fois sur le bouton du milieu de la brique (Nombre de mal placés)." )
  42.     return Mal
  43. # Corps du Programme:
  44. # On importe les fonctions "Aléatoire" pour que l'ordinateur génère le code à trouver.
  45. from random import *
  46. Present()
  47. Compteur = 0
  48. Nombre = 4
  49. Nbmax = 4
  50. Essaismax = int(input("Entrez le nombre d'essais maximum pour trouver une combinaison : " ))
  51. x = 0
  52. print("" )
  53. print("Entrez votre combinaison." )
  54. # Ceci est la boucle qui génère le Code, en prévoyant les erreurs.
  55. Code = [0] * 4
  56. for x in range(0, 4 ,1):
  57.     Code = Erreur(Code)
  58. # Ceci est la fonction "tuple" qui rend invariable le Code.
  59. tupCode = tuple(Code)
  60. print("" )
  61. print("Vous devez trouver la combinaison du joueur en" , Essaismax, " essais maximum." )
  62. print("" )
  63. # Ceci est la boucle des propositions du joueur, c'est la boucle principale du programme.
  64. while Compteur < Essaismax :
  65.     print("Entrez une combinaison." )
  66.     Code_bis = list(tupCode)
  67. # Ceci est la boucle qui génère la Reponse du joueur, en prévoyant les erreurs.   
  68.     Reponse = [0] * 4
  69.     for x in range(0, 4 ,1):
  70.         Reponse = Erreur(Reponse)
  71.     print(Reponse)
  72. # On appelle les fonctions qui "diagnostiquent" la Reponse.
  73.     Bien = Bienplaces()
  74.     Mal = Malplaces()
  75. # Enfin, voici le compteur d'essais et le  message de réponse qui s'affichent en fin de boucle.
  76.     Trouve = (Bien == Nombre)
  77.     if Trouve:
  78.         print("Bravo, tu as trouvé la bonne combinaison! En seulement" , Compteur + 1, "essais!" )
  79.         Compteur = 1000
  80.     elif (Essaismax - Compteur - 1 != 0):
  81.         print("Essaie encore, il te reste encore" , Essaismax - Compteur - 1, "essais." )
  82.     Compteur +=  1
  83. if (Essaismax - Compteur == 0) and (not Trouve):
  84.     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
Reply

Marsh Posté le 28-12-2014 à 11:41:10   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed