import random
mots_bipolaires = {
"dépression": {
"description": "Un état de tristesse profonde et prolongée.",
"devinette": [
"Je suis souvent décrite comme un nuage sombre qui ne semble jamais partir. Qui suis-je ?",
"Je suis une ombre qui engloutit le bonheur, me reconnaîtriez-vous ?"
]
},
"manie": {
"description": "Une période d'excitation, d'énergie élevée et de comportements impulsifs.",
"devinette": [
"Je suis l'énergie débordante qui fait danser les idées à toute vitesse. Qui suis-je ?",
"Je suis l'excitation incontrôlable qui vous pousse à agir sans réfléchir. Que suis-je ?"
]
},
"stabilité": {
"description": "Un état émotionnel équilibré et régulier.",
"devinette": [
"Je suis l'équilibre émotionnel recherché par tous, le Graal de la paix intérieure. Qui suis-je ?",
"Je suis la constance émotionnelle qui fait du bien à l'esprit. Que suis-je ?"
]
},
"merci pour votre attention": {
"description": "Une phrase tous les étudiants l'aiment.",
"devinette": [
"Les étudiants l'attendent avec impatience à la fin des cours. Que suis-je ?",
"Une phrase qui reconnaît l'écoute et la considération, très appréciée. Qui suis-je ?"
]
}
# Ajoutez d'autres mots et leurs descriptions et devinettes ici
}
mots_non_utilises = list(mots_bipolaires.keys())
dernier_mot = None
def choisir_mot_aleatoire():
global dernier_mot
mots_disponibles = [mot for mot in mots_non_utilises if mot != dernier_mot]
if not mots_disponibles:
mots_disponibles = list(mots_bipolaires.keys())
mot_choisi = random.choice(mots_disponibles)
mots_non_utilises.remove(mot_choisi)
dernier_mot = mot_choisi
return mot_choisi
def choisir_mot():
global dernier_mot
mots_disponibles = [mot for mot in mots_non_utilises if mot != dernier_mot]
if not mots_disponibles:
mots_disponibles = list(mots_bipolaires.keys())
mot_choisi = random.choice(mots_disponibles)
mots_non_utilises.remove(mot_choisi)
dernier_mot = mot_choisi
return mot_choisi
def rejouer():
while True:
jeu_pendu()
print("\nVoulez-vous rejouer ? (Oui/Non) : ", end="")
reponse = input().lower()
if reponse == 'oui':
mots_non_utilises.extend(list(mots_bipolaires.keys()))
else:
print("Merci d'avoir joué ! Au revoir.")
break
def deviner_mot(mot, sens):
proposition = input("Entrez votre proposition : ").lower()
if proposition == mot:
if sens == sens_a_deviner:
print("Vous avez gagné ! Le mot est '{}' et le sens est '{}'.".format(mot, sens))
else:
print("Vous avez deviné le mot correctement, mais pas le sens.")
else:
print("Mauvaise réponse.")
def devinette(mot):
return random.choice([dev for dev in mots_bipolaires[mot]['devinette'] if dev != mots_bipolaires[mot]['devinette'][0]])
def afficher_mot(mot, lettres_trouvees):
mot_affiche = ""
for lettre in mot:
if lettre.lower() in lettres_trouvees:
mot_affiche += lettre + " "
else:
mot_affiche += "_ "
return mot_affiche
def proposition(mot_a_deviner):
reponse = input("Donner votre proposition:").lower()
if reponse == mot_a_deviner.lower():
print(f"Félicitations ! Vous avez deviné le terme '{mot_a_deviner}'. Vous avez gagné !")
return True
else:
print("Ce n'est pas le bon mot.")
return False
def donner_indice(mot_a_deviner, lettres_trouvees):
lettres_non_trouvees = [lettre for lettre in mot_a_deviner.lower() if lettre not in lettres_trouvees]
if lettres_non_trouvees:
indice = random.choice(lettres_non_trouvees)
return f"Indice : Le mot contient la lettre '{indice}'."
else:
return "Toutes les lettres ont déjà été trouvées !"
def jeu_pendu():
mot_a_deviner = choisir_mot()
mot_a_deviner_lower = mot_a_deviner.lower()
lettres_trouvees = set()
tentatives_restantes = len(mot_a_deviner) // 3
partie_terminee = False
print(f"Devinette : {random.choice(mots_bipolaires[mot_a_deviner]['devinette'])}")
while True:
mot_affiche = afficher_mot(mot_a_deviner, lettres_trouvees)
print(f"\nMot à deviner : {mot_affiche}")
print(f"Tentatives restantes : {tentatives_restantes}")
if "_" not in mot_affiche:
print(f"Félicitations, vous avez deviné le terme '{mot_a_deviner}' !")
partie_terminee = True
a = input("Proposez une lettre (ou tapez 'proposition' pour proposer le mot complet, 'give up' pour abandonner, ou 'indice' pour obtenir de l'aide) : ").lower()
if a == 'proposition':
if not proposition(mot_a_deviner):
tentatives_restantes -= 1
break
elif a == 'give up':
print(f"Vous avez abandonné ! Le mot à deviner était '{mot_a_deviner}'.")
print(f"\nDescription du terme '{mot_a_deviner}' : {mots_bipolaires[mot_a_deviner]}")
break
elif a == 'indice':
print(donner_indice(mot_a_deviner, lettres_trouvees))
elif len(a) != 1 or not a.isalpha():
print("Erreur, vous devez entrer une seule lettre.")
elif a in lettres_trouvees:
print("Erreur, cette lettre a déjà été proposée.")
else:
lettres_trouvees.add(a)
if a not in mot_a_deviner.lower():
tentatives_restantes -= 1
print(f"Erreur, la lettre '{a}' n'est pas dans le mot. Il vous reste {tentatives_restantes} tentatives.")
if __name__ == "__main__":
print(f"Bienvenue dans le jeu du pendu sur la bipolarité ! Le principe du jeu est de deviner un terme à partir d'une devinette.")
rejouer()