-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprojet1ere.py
More file actions
94 lines (78 loc) · 2.96 KB
/
projet1ere.py
File metadata and controls
94 lines (78 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import random
import time
def charger_dictionnaire(fichier="dictionnaire.txt"):
"""
Charge un dictionnaire de mots depuis un fichier texte.
Args:
fichier (str): Chemin vers le fichier contenant les mots (un mot par ligne).
Par défaut : "dictionnaire.txt".
Returns:
list: Liste des mots en minuscules, sans espaces ni sauts de ligne.
Retourne une liste vide si le fichier est introuvable.
"""
try:
with open(fichier, "r", encoding="utf-8") as f:
return [mot.strip().lower() for mot in f if mot.strip()]
except FileNotFoundError:
print("Le fichier dictionnaire.txt est introuvable.")
return []
def est_plonge(mot, mot_ref):
"""
Vérifie si un mot est "plongé" dans un mot de référence.
Un mot est plongé si ses lettres apparaissent dans l'ordre (mais pas forcément consécutives) dans le mot de référence.
Args:
mot (str): Mot à tester.
mot_ref (str): Mot de référence.
Returns:
bool: True si le mot est plongé, False sinon.
"""
i = 0
for lettre in mot_ref:
if i < len(mot) and mot[i] == lettre:
i += 1
return i == len(mot)
dictionnaire = charger_dictionnaire()
dictionnaire_ref = [mot for mot in dictionnaire if len(mot) >= 6] # On ne garde que les mots de 6 lettres ou plus
# On stocke les PVs des joueurs
joueurs = [50, 50]
# Temps maximum pour entrer un mot (en secondes)
temps_max = 15
tour = 1
print("=== Jeu du mot plongé ===")
# Boucle principale
while joueurs[0] > 0 and joueurs[1] > 0:
print("\n--- Tour ", tour, " ---")
mot_ref = random.choice(dictionnaire_ref)
print("Mot de référence : ", mot_ref)
for i in range(len(joueurs)):
print("joueur ", i+1, " : entrez un mot en ", temps_max, " secondes :")
debut = time.time()
mot_joueur = input("> ").lower().strip()
temps = time.time() - debut
if temps > temps_max:
print("Temps dépassé ! -5 HP")
joueurs[i] -= 5
elif mot_joueur not in dictionnaire:
print("Mot invalide ! -5 HP")
joueurs[i] -= 5
elif not est_plonge(mot_joueur, mot_ref):
print("Le mot n'est pas plongé ! -5 HP")
joueurs[i] -= 5
else:
print("Mot accepté ! L'adversaire perd ", len(mot_joueur), " HP")
# L'autre joueur perd des HP
if i == 0:
joueurs[1] -= len(mot_joueur)
else:
joueurs[0] -= len(mot_joueur)
print("\nÉtat des joueurs :")
for i in range(len(joueurs)):
print("joueur ", i, " : ", joueurs[i], " HP")
tour += 1
# Résultat final
if joueurs[0] > joueurs[1]:
print("\n=== Victoire du joueur 1 ! ===")
elif joueurs[0] < joueurs[1]:
print("\n=== Victoire du joueur 2 ! ===")
else:
print("\n=== Égalité ! ===")