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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
# -*- coding: utf-8 -*-
# import ---------------------------------------
from random import randrange # fonction randrange du module random
# ------------- fonctions ----------------------
def lireMot(nLigne):
'lecture du mot à partir du nombre aléatoire'
oFich = open('motsPendu.txt','r') # création objet fichier
i = 0
while i <= nLigne :
mot = oFich.readline() # lecture de la ligne
i+=1
oFich.close()
return (mot[:-1]) # lecture du mot sans le caractère "aller à la ligne"
def afficheMot(mot,listeBolet,listeMalet):
'affiche le mot en fonction des lettres trouvées'
print('\n')
for car in mot : # pour car dans mot
if car in listeBolet :
print(car,end='')
else :
print('*',end='')
print('\n')
if len(listeMalet) > 0 :
print('Mauvaises lettres : ', end='')
for elem in listeMalet :
print(elem,' ',end='')
print('\n')
def ajouterMot(nouvMot):
oFichier = open('motsPendu.txt', 'a')
oFichier.write(nouvMot.upper()+'\n')
oFichier.close()
# ------------- programme principal ----------------
while 1 :
print('# --------------- PENDU --------------- #')
print('-----------------------------------------')
print('1 - Jouer.')
print('2 - Ajouter un nouveau mot au répertoire.')
print('3 - Quitter')
print('-----------------------------------------')
choix = input('Votre choix : ')
maxChance = 8
repCont = 'Y' # valeur par défaut pour continuer à jouer
if choix == '1' :
while repCont == 'Y' :
print('\n')
print('*** LE PENDU ***')
print('Tapez "QUITTER" ou "quitter" pour sortir du jeu !')
nbLignMot = sum(1 for line in open('motsPendu.txt', 'r'))
nbLignMot = randrange(nbLignMot) # ...
motSecret = lireMot(nbLignMot)
lisGoodLet = []
lisBadLet = []
nbChance = 0
while 1 :
afficheMot(motSecret,lisGoodLet,lisBadLet)
lettre = input('Entrez une lettre : ').upper()
"""if lettre == motSecret :
good = True
if good == True :
print('Vous avez gagné !')
break;
"""
##Start edit 1:
#on compte le mot entier uniquement pour la meme longueur (je suppose)
if len(lettre) == len(motSecret):
if lettre==motSecret:
good = True
#good étant un booléen, pas la peine ==True
if good:
print('Vous avez gangé !')
break;
else:
nbChance += 1
##End edit 1
elif lettre == "" or lettre in "0123456789":
print("/!\ VEUILLEZ ENTRER UNE LETTRE /!\ ")
elif lettre == "quitter" or lettre == "QUITTER" :
break;
elif lettre[0] in motSecret :
if lettre[0] in lisGoodLet :
print('Vous avez déjà essayé cette lettre.')
else :
lisGoodLet.append(lettre[0]) # 0 car on ne prend que la première lettre
good = True
for car in motSecret :
if car not in lisGoodLet :
good = False
if good == True :
print('Vous avez gagné !')
break;
else :
if lettre[0] in lisBadLet :
print ('Vous avez déjà essayé cette lettre.')
else :
lisBadLet.append(lettre[0])
nbChance+=1
##Start edit 2
#vu que l'on modifie nbChance autre part que dans ce else, on doit
#le remonter d'un bloc (dédenter)
if nbChance == maxChance :
print ('Vous avez perdu ! Le mot était : ',motSecret)
break;
##End edit 2
repCont = input('Voulez-vous rejouer ? (Y) - (N) : ')
repCont = repCont.upper() # pour afficher en majuscules
print ('\n')
print ('Merci pour votre participation !')
print ('\n');
elif choix == '2':
while repCont == 'Y' :
print ('\n')
newMot = input('Mot à ajouter à la liste : ')
ajouterMot(newMot)
print ('Le mot a été ajouté avec succès.')
repCont = input('Un autre mot ? (Y) - (N) : ')
repCont = repCont.upper()
print ('\n')
elif choix == '3':
print('Aurevoir !')
break; |
Partager