"""
TP -- Le pendu avec des fonctions
NSI Première -- Séquence 3 : Les fonctions

Ce fichier reprend tous les codes déjà fournis dans le sujet (prêts à
exécuter tels quels), avec des zones "A COMPLETER" aux endroits où c'est
à vous d'écrire le code. Avancez dans l'ordre du sujet, exercice par
exercice.
"""

# ============================================================
#  PARTIE A -- COMPRENDRE
# ============================================================

# ----- Exercice 1 : la fonction d'affichage du mot à trous -----
# (code fourni dans le sujet -- rien à modifier ici, exécutez-le et
# répondez aux questions de l'exercice sur votre copie / feuille)

def affichage_mot(mot_secret, lettres_trouvees):
    affichage = ""
    for lettre in mot_secret:
        if lettre in lettres_trouvees:
            affichage = affichage + lettre
        else:
            affichage = affichage + "_"
    return affichage

print(affichage_mot("python", "otn"))


# ----- Exercice 2 : écrire la fonction de victoire -----
# Paramètre : affichage (une chaîne comme celles renvoyées par affichage_mot)
# Valeur renvoyée : True si le mot est entièrement trouvé, False sinon
#
# A COMPLETER : remplacez la ligne "pass" par le code de la fonction
# (if / else, comme indiqué dans le sujet).

def victoire(affichage):
    pass  # <- A COMPLETER

# Pour tester votre fonction (question 2 de l'exercice) :
# print(victoire("py_ho_"))
# print(victoire("python"))


# ----- Exercice 3 : portée des variables dans le pendu -----
# A la suite de ce fichier (donc après avoir écrit victoire ci-dessus),
# le sujet vous demande de taper le code suivant (déjà recopié ici) :

affichage = "py_ho_"
resultat = victoire(affichage)
print(affichage)


# ============================================================
#  PARTIE B -- MODIFIER
# ============================================================
# D'après le sujet : copiez le code ci-dessous dans un NOUVEAU fichier
# nommé pendu_fonctions.py (séparé de celui-ci), puis modifiez-le en
# suivant les exercices 4 et 5 du sujet (extraction de affichage_mot,
# puis de victoire, ajout des docstrings).
#
# (code fourni dans le sujet -- identique à votre fichier obtenu à la
# fin de la partie B du TP du pendu, chapitre précédent)

mot_secret = "python"
lettres_trouvees = ""
essais_restants = 6
essais_utilises = 0

affichage = ""
for lettre in mot_secret:
    affichage = affichage + "_"

while essais_restants > 0 and "_" in affichage:
    print(affichage)

    proposition = input("Proposez une lettre : ")

    if proposition in mot_secret:
        lettres_trouvees = lettres_trouvees + proposition
    else:
        essais_restants = essais_restants - 1
        essais_utilises = essais_utilises + 1

    affichage = ""
    for lettre in mot_secret:
        if lettre in lettres_trouvees:
            affichage = affichage + lettre
        else:
            affichage = affichage + "_"

if "_" in affichage:
    print("Perdu ! Le mot était :", mot_secret)
else:
    print("Bravo, trouvé avec", essais_utilises, "erreur(s) !")


# ============================================================
#  PARTIE C -- CREER
# ============================================================
# A partir d'ici, continuez de travailler dans pendu_fonctions.py
# (le fichier de la partie B ci-dessus), en suivant les exercices
# 6 à 9 du sujet :
#
#   - exercice 6 : écrire jouer_une_partie(mot_secret)
#   - exercice 7 : enchaîner 3 mots en réutilisant jouer_une_partie
#   - exercice 8 : écrire un jeu de tests (assert) pour affichage_mot
#                  et victoire
#   - exercice 9 : une amélioration de votre choix
#
# Aucun code n'est fourni pour ces exercices : c'est à vous de l'écrire !