""" Jeu du pendu 
  > Tire un mot d'une liste de vocabulaire courrant contenant 230 verbes, 73 adjectifs et 297 noms
  > Donne 10 chances au joueur pour trouver le mot : son score augmente de 10 (gagné) ou de -5 (perdu)
  version 1 : affichage sur la console du mot, du message et du score                                      """
from random import *
def correction(MOT):
    reste,cherche,trouve=0,True,False
    for i in range(len(mot)-2):
        if mot[i+1]==lettre :
            MOT=MOT[0:2*(i+1)]+lettre.upper()+MOT[2*(i+1)+1:]
            trouve=True
    for i in range(len(MOT)):
        if MOT[i]=="_" :
            reste+=1
    if reste==0 : cherche=False
    return MOT,cherche,trouve

def tirage():
    r=randint(0,2)
    type_mot=types[r]                   # choix du type
    f=open(fichiers[r],encoding="utf8")        
    liste_mots=f.read()                 # lecture de la liste des mots du type
    f.close()
    mots=liste_mots.split()
    mot=choice(mots)                    # choix du mot
    MOT=""
    for c in mot:
        if c in accents :               # enlever les accents du mot
            c=accents[c]
        MOT+=c
    print("\nDeviner un",type_mot,":")
    return MOT



types=("adjectif","verbe","nom")
fichiers=("adjectifs.txt","verbes.txt","noms.txt")
accents={"é":"e","è":"e","ë":"e","ê":"e","à":"a","â":"a","ü":"u","û":"u","ô":"o","ç":"c"}
#QUESTION 1
#print(tirage())

#QUESTION 2
score,jouer=0,True                     # initialisation diverses
while jouer:
    mot=tirage()
    MOT=""
    for i in range(len(mot)):
        if i==0 or i==len(mot)-1:
            MOT+=mot[i].upper()+" "
        else :
            MOT+="_ "
    print(MOT,end=" ")
    erreurs,cherche=0,True
    erreurs_max=10
    while erreurs<erreurs_max and cherche: # erreurs+=1
        if erreurs_max==1+erreurs:
            lettre=input("il ne reste plus qu'une chance, entrer une lettre : ".format(erreurs_max-erreurs))
        else : lettre=input("il reste {} chances, entrer une lettre : ".format(erreurs_max-erreurs))
        MOT,cherche,trouve=correction(MOT) #voir question 3
        if not trouve: erreurs+=1
        print(MOT,end=" ")
    if erreurs==erreurs_max and cherche:
        score-=5
        print("PENDU! Le mot était {}. Score={}".format(mot,score))
    else :
        score+=10
        print("BRAVO! Score={}".format(score))
    q=input("Rejouer? (taper y ou 1 pour rejouer)")
    if not q=="y" or q=="1": jouer=False
    

