pendu2.py

Created by frablock

Created on June 27, 2022

7.23 KB

Une version avec une base de données

basé sur https://my.numworks.com/python/schraf/pendu


from random import *
#basé sur https://my.numworks.com/python/schraf/pendu
d=['abandonner', 'abattre', 'accent', 'accompagner', 'accomplir', 'accorder', 'accrocher', 'acheter', 'achever', 'admettre', 'agir', 'agiter', 'ailleurs', 'air', 'ajouter', 'alors', 'amour', 'an', 'anglais', 'angoisse', 'animal', 'animer', 'annoncer', 'apparence', 'appel', 'apporter', 'apprendre', 'appuyer', 'arme', 'arracher', 'article', 'aspect', 'asseoir', 'assister', 'attacher', 'atteindre', 'attitude', 'au', "aujourd'hui", 'autant', 'autour', 'autre', 'autrefois', 'avance', 'avant', 'avis', 'baisser', 'banc', 'bas', 'battre', 'beau', 'beaux', 'besoin', 'bien', 'blanc', 'blanc', 'bon', 'bonheur', 'briser', 'brusquement', 'but', 'calme', 'camarade', 'campagne', 'capable', 'car', 'casser', 'causer', 'ce', 'ceci', 'cela', 'cent', 'centre', 'certain', 'certain', 'certainement', 'cesse', 'chacun', 'chaise', 'chaleur', 'chance', 'changement', 'chant', 'charge', 'chasser', 'chef', 'chemise', 'chercher', 'cheval', 'cheveu', 'chez', 'chien', 'chiffre', 'chose', 'ci', 'ciel', 'cinq', 'cinquante', 'circonstance', 'clair', 'claire', 'clef', 'coeur', 'colon', 'comme', 'commencer', 'comment', 'comment', 'commun', 'compagnie', 'compagnon', 'composer', 'comprendre', 'compte', 'confier', 'conseil', 'consentir', 'construire', 'consulter', 'content', 'contenter', 'continuer', 'contraire', 'contre', 'corde', 'corps', 'cou', 'couleur', 'coup', 'couper', 'cours', 'course', 'court', 'couvrir', 'creuser', 'crier', 'crise', 'cuisine', 'curieux', "d'abord", 'danger', 'dangereux', 'dans', "d'autres", 'davantage', 'de', 'de', 'debout', 'demeurer', 'dent', 'depuis', 'depuis', 'dernier', 'descendre', 'dessus', 'deux', 'devoir', 'dieu', 'dimanche', 'dire', 'diriger', 'discussion', 'discuter', 'disposer', 'distance', 'distinguer', 'docteur', 'doigt', 'donc', 'donner', 'dont', 'double', 'doute', 'douze', 'drame', 'dresser', 'droit', 'droite', 'durant', 'durer', 'eau', 'eaux', 'effort', 'eh', 'elle', 'embrasser', 'emmener', 'empire', 'emporter', 'endormir', 'enfance', 'enfermer', 'enfin', 'enlever', 'ensemble', 'ensuite', 'entourer', 'envelopper', 'envie', 'environ', 'envoyer', 'erreur', 'espoir', 'essuyer', 'et', 'etc', 'exemple', 'exiger', 'exister', 'expliquer', 'exposer', 'exprimer', 'extraordinaire', 'facile', 'faim', 'faire', 'fait', 'fait', 'famille', 'fatigue', 'fatiguer', 'faute', 'fauteuil', 'faux', 'ferme', 'fermer', 'feu', 'fier', 'fille', 'fin', 'fin', 'fine', 'fixer', 'fleur', 'flot', 'foi', 'fois', 'folie', 'fonction', 'fond', 'fonder', 'force', 'fortune', 'franc', 'franchir', 'frapper', 'froid', 'froid', 'front', 'fuir', 'gagner', 'garde', 'gauche', 'gauche', 'geste', 'glace', 'gloire', 'gouvernement', 'grand', 'grave', 'gris', 'groupe', 'guerre', 'habiller', 'habitant', 'haut', 'haut', 'hauteur', 'herbe', 'hier', 'histoire', 'hiver', 'honneur', 'honte', 'humain', 'humide', 'ignorer', 'immense', 'immobile', 'importance', 'importer', 'impression', 'inconnu', 'installer', 'intention', 'interrompre', 'inventer', 'jaune', 'jeter', 'jeune', 'joindre', 'joli', 'joue', 'jour', 'journal', 'juger', 'jusque', 'juste', 'justice', 'larme', 'le', 'lentement', 'leur', 'libre', 'lien', 'lier', 'lieu', 'ligne', 'lisser', 'lit', 'livre', 'loin', 'long', 'long', 'longtemps', 'loup', "l'une", 'lutte', 'machine', 'magnifique', 'maintenant', 'maintenir', 'maison', 'manier', 'marchand', 'mariage', 'marquer', 'membre', 'mer', 'mien', 'mieux', 'milieu', 'militaire', 'mille', 'million', 'mince', 'mine', 'miser', 'mode', 'moindre', 'mois', 'mon', 'monsieur', 'monter', 'morceau', 'mot', 'moyen', 'muet', 'mur', 'musique', 'nature', 'naturellement', 'nerveux', 'neuf', 'ni', 'noir', 'noire', 'nombreux', 'nommer', 'notre', 'nourrir', 'nu', 'nuit', 'objet', 'obtenir', 'occasion', 'occuper', 'oeil', 'oeuvre', 'officier', 'oiseau', 'ombre', 'oui', 'ouvert', 'pain', 'papier', 'par', 'pareil', 'parent', 'parfois', 'parmi', 'parole', 'parti', 'partie', 'partout', 'parvenir', 'pas', 'passage', 'passer', 'passion', 'paysan', 'peau', 'peine', 'pencher', 'pendant', 'pendre', 'permettre', 'personne', 'petit', 'peu', 'peur', 'phrase', 'pied', 'pierre', 'place', 'planche', 'plante', 'plein', 'plus', 'police', 'politique', 'port', 'porter', 'pour', 'pourquoi', 'pourquoi', 'pousser', 'pouvoir', 'presser', 'prier', 'prince', 'principe', 'prison', 'prix', 'prochain', 'produire', 'professeur', 'profiter', 'projet', 'promettre', 'prouver', 'puis', 'puisque', 'puissance', 'puissant', 'quand', 'quarante', 'quartier', 'quatre', 'que', "quelqu'un", 'question', 'queue', 'qui', 'quitter', 'quoi', 'rang', 'rapide', 'rapport', 'recommencer', 'recueillir', 'refuser', 'regarder', 'regretter', 'rejeter', 'relation', 'relever', 'remarquer', 'remonter', 'remplacer', 'rencontre', 'renoncer', 'repousser', 'reprendre', 'respect', 'respirer', 'ressembler', 'reste', 'retenir', 'retirer', 'retomber', 'retrouver', 'revenir', 'revoir', 'riche', 'rire', 'robe', 'rond', 'rose', 'rouge', 'rouler', 'rue', 'ruine', 'sable', 'saisir', 'saison', 'saluer', 'salut', 'sans', 'satisfaire', 'sauter', 'sauvage', 'sauver', 'savoir', 'science', 'se', 'sec', 'second', 'secret', 'secret', 'selon', 'semblable', 'sens', 'servir', 'seul', 'seulement', 'signer', 'signifier', 'silencieux', 'simplement', 'situation', 'soin', 'soir', 'soldat', 'soleil', 'solitude', 'sommeil', 'son', 'son', 'songer', 'souffler', 'souffrance', 'souffrir', 'souhaiter', 'soumettre', 'sourd', 'souvenir', 'souvenir', 'spectacle', 'suivre', 'supposer', 'sur', 'table', 'taire', 'tapis', 'tendre', 'tenir', 'terme', 'terreur', 'tirer', 'titre', 'toile', 'toit', 'tomber', 'ton', 'ton', 'toucher', 'tourner', 'tout', 'tout', 'tout', 'toute', 'tracer', 'train', 'traiter', 'transformer', 'travailler', 'trente', 'triste', 'trois', 'tromper', 'trop', 'type', 'un', 'un', 'un', 'usage', 'vague', 'vaste', 'veiller', 'venir', 'vers', 'vers', 'vert', 'vide', 'vide', 'vieillard', 'vieux', 'vif', 'village', 'ville', 'violent', 'visage', 'vite', 'vivant', 'vivre', 'voie', 'voisin', 'vol', 'voler', 'votre', 'vous', 'voyager', 'yeux']
def eff():
  for i in range(15):print()

def question(txt):
  rep = ""
  while rep == "":
    rep = input(txt+" ? ")
    rep = rep.upper()
    if any([x<"A" or x>"Z" for x in rep]):
      print("Que des lettres !")
      rep = ""
  return rep

def dessin(c):
  print("+--+")
  print("|/ |")
  for i in range(4):
    print("| ",end="")
    if i == 0 and c > 0: print(" o")
    elif i == 1 and c >= 2:
      if c <= 3: print([" |","/|"][c-2])
      else: print("/|\\")
    elif i == 2 and c >= 5:
      if c == 5: print("/")
      else: print("/ \\")
    else: print("")  
  print("="*5)
  return

def go():
  secret = choice(d).upper()
  coup = 0
  tests = []
  trouve = ["_"]*len(secret)
  eff() 
  bon = 0
  while True:  
    lettre = question("Lettre")[0]
    ajout = True
    for (i,c) in enumerate(secret):
      if lettre == c:
        if trouve[i] != c: bon += 1
        trouve[i] = c
        ajout = False
    if bon == len(secret):
      print("BRAVO pour",secret)
      print("En",coup,"coup(s) !")
      return
    eff()
    if ajout: coup += 1
    dessin(coup)
    if ajout:
      tests.append(lettre)
      tests = sorted(tests)
      if coup == 6:
        print("PERDU !")
        print("Secret =",secret)
        break
    print("Vos tests :","".join(tests))
    print("Secret :","".join(trouve))
 
go()