Pendu
Consignes
Minimum
Etape :
- (etape 0) tirage d'un mot (mot à trouver) de façon aléatoire parmi une liste de mots => ex : [“gagne”, “raptor”, “bouteille”] …
- (etape 1) boucle de jeu (tant que) :
-
La personne saisie une lettre
-
3 possibilités ensuite :
- Si la lettre n'existe pas dans le mot à trouver alors pénalité (voir (A))
- Si la lettre existe dans le mot alors on continue, et on affiche ou se situe la lettre dans le mot (voir (C))
- Si la lettre existe dans le mot MAIS a déjà été tapé alors on ne met pas de pénalité et on indique à l'utilisateur que la lettre a déjà été saisie (voir (B))
-
Sortie de boucle :
- si essai > 10 on arrête
- si toutes les lettres sont trouvées on arrête
-
Sous étape :
- (A) affichage de la progression des pénalités, par exemple avec un dessin fait en chaine de caractère
- (B) affichage des lettres déjà saisies par l’utilisateur => ex : “ t, g, e “ déjà saisies
- (C) affichage des lettre déjà trouvé dans le mot à la bonne position => ex : “ g _ g _ e “
Bonus
- un diagramme d’activité général du jeu (avec les bonus si il y’en a)
- ajouter un menu pour les options, affiché entre chaque essai
- entre chaque essai, possibilité de saisir le mot directement si le joueur pense avoir deviné ( menu : S / Saisir une lettre, D / Saisir le mot), prévoir une pénalité si c’est faux
- proposer au joueur des indices (contre une pénalité) sur le mot (menu I / Indice)
- ajouter un système de points en plus des pénalités : 2 points gagné si la lettre est bonne, retirer 3 points si la lettre est fausse (minimum à zéro), possibilité d’acheter des indices (pour 5 points) sans pénalité
- proposer au joueur de rejouer une partie si il gagne (menu : C / Continuer, A / Arrêter)
- proposer une difficulté croissante dans les mots proposés, si le joueur gagne on peut passer au niveau suivant
Tips
- Les mots sont des listes, seulement accessible en lecture
mot = "salut!"
print(mot[3])
mot[3] = "e" #erreur, on ne peut pas écraser la valeur
# pour écraser la valeur il faut parcourir le mot et en créer un nouveau avec un tableau
mot_remplace = []
for i in range(len(mot)):
if mot[i] == "u":
# on remplace !
mot_remplace.append("e")
else:
mot_remplace.append(mot[i])
print(mot_remplace)
# on transforme le tableau de caractere en chaine de caractere
jointure = "".join(mot_remplace)
print(jointure)
- Il y a au moins deux façon de parcourir des listes
mot = "abc" # équivalent de [“a”,”b”,”c”]
# via les indices
for i in range(len(mot)):
print(mot[i])
# via les éléments directement
for e in mot:
print(e)
- Pour gérer les accents, ajouter tout en haut de votre programme
- Pour tester la présence d’un élément dans une liste
lettre = "a"
mots = "baba"
mots2 = "coucou"
if lettre in mots :
print("trouve")
if lettre in mots2 :
print("trouve")
- Pour intercaler un caractère (ex "_") dans une chaîne
# intercaler un caractère dans une chaine de caractère
mots1 = "baba"
jointure = "_".join(mots1)
print(jointure)
# transformer un tableau vers chaine de caractère
mots2 = ["b","a","b","a"]
jointure = "".join(mots2)
print(jointure)
- Pour un affichage plus travaillé des données stockées dans une console
Voir https://docs.python.org/fr/3.9/library/string.html