|
|
@ -8,6 +8,17 @@ lettre_à_supp=[] |
|
|
|
lst_mot=[] |
|
|
|
mot_aleatoire=42 |
|
|
|
difficulté=4 |
|
|
|
|
|
|
|
##################Mot###################### |
|
|
|
def aleatoire(): |
|
|
|
global mot_aleatoire |
|
|
|
global lst_mot |
|
|
|
lst_mot=["chou","Nouveaux","Pologne","vortex","Emmanuel","Nicolas","mot","pet","chat","chate","zebre","arbre","Donald","canard","bonjour","cote", |
|
|
|
"Mexique","France","pomme","Solene","Alabama","anticonstitutionnelement","alcool","jumeau","jumelle","bourré", |
|
|
|
"intergouvernementalisation","Creuse","Elise","abricot","beau","desert","Alaska","jolie","Henry","marche","Felx"] |
|
|
|
mot_aleatoire=lst_mot[randint(0,len(lst_mot)-1)] |
|
|
|
mot_choisie() |
|
|
|
|
|
|
|
def mot_choisie(): |
|
|
|
global list_l_pendue |
|
|
|
global mot_tiret |
|
|
@ -17,13 +28,14 @@ def mot_choisie(): |
|
|
|
global lst_mot |
|
|
|
|
|
|
|
list_mot_pendue=[] |
|
|
|
#mot_pendue= mot.get() |
|
|
|
mot_pendue= mot.get() |
|
|
|
if len(lst_mot)!=0: |
|
|
|
mot_pendue=mot_aleatoire |
|
|
|
list_l_pendue=[] |
|
|
|
mot_tiret=[] |
|
|
|
for lettre_pendue in mot_pendue: |
|
|
|
list_l_pendue.append(lettre_pendue) |
|
|
|
if lettre_pendue in list_l_pendue: |
|
|
|
list_l_pendue.append(lettre_pendue) |
|
|
|
mot_tiret.append("-") |
|
|
|
list_mot_pendue.append(lettre_pendue) |
|
|
|
|
|
|
@ -36,7 +48,7 @@ def mot_choisie(): |
|
|
|
choix_mot.config(state=DISABLED,show="*") |
|
|
|
mot_affiche=Label(pendue, text=mot_tiret).grid(row=3,column=1) |
|
|
|
bouton_mot.config(state=DISABLED) |
|
|
|
|
|
|
|
##################Jeux###################### |
|
|
|
def commencé(): |
|
|
|
pendue_jeux(lettre.get()) |
|
|
|
if sorted(list_l_pendue)==sorted(lettre_à_supp): |
|
|
@ -56,10 +68,8 @@ def pendue_jeux(lettre_choisie): |
|
|
|
global mot_affiche |
|
|
|
global nb_raté |
|
|
|
global lettre_à_supp |
|
|
|
global lettre_à_supp_av |
|
|
|
lettre_trouvé=[] |
|
|
|
#recherche si la lettre est dans le mot ou est passé |
|
|
|
lettre_à_supp_av=lettre_à_supp[:] |
|
|
|
for i_lettre in range(len(list_l_pendue)): |
|
|
|
if lettre_choisie==list_l_pendue[i_lettre].lower() and not(lettre_choisie in lettre_à_supp): |
|
|
|
lettre_à_supp.append(list_l_pendue[i_lettre]) |
|
|
@ -144,58 +154,77 @@ def choix_niveau(): |
|
|
|
maître.config(state=DISABLED) |
|
|
|
lettre_choix.config(state=NORMAL) |
|
|
|
bouton_l.config(state=NORMAL) |
|
|
|
|
|
|
|
def aleatoire(): |
|
|
|
global mot_aleatoire |
|
|
|
global lst_mot |
|
|
|
lst_mot=["chou","Nouveaux","Pologne","vortex","Emmanuel","Nicolas","mot","pet","chat","chate","zebre","arbre","Donald","canard","bonjour","cote", |
|
|
|
"Mexique","France","pomme","Solene","Alabama","anticonstitutionnelement","alcool","jumeau","jumelle","bourré", |
|
|
|
"intergouvernementalisation","Creuse","Elise","abricot","beau","desert","Alaska","jolie","Henry","marche","Felx"] |
|
|
|
mot_aleatoire=lst_mot[randint(0,len(lst_mot)-1)] |
|
|
|
mot_choisie() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
####################Ia################ |
|
|
|
def ai_pendue(): |
|
|
|
global moment_mort |
|
|
|
global difficulté |
|
|
|
global lettre_à_supp |
|
|
|
lst_lettre=["azertyuiopqsdfghjklmwxcvbn"]*2*25 |
|
|
|
#initialisation |
|
|
|
i=0 |
|
|
|
nb_essaie=0 |
|
|
|
victoire=0 |
|
|
|
rate=0 |
|
|
|
mot_victoire=[] |
|
|
|
while True: |
|
|
|
lst_rate=[] |
|
|
|
while nb_essaie!=-1 : |
|
|
|
#réitialisation des variable |
|
|
|
nb_essaie=nb_essaie+1 |
|
|
|
moment_mort=2 |
|
|
|
difficulté=4 |
|
|
|
moment_mort=8 |
|
|
|
difficulté=2 |
|
|
|
i=0 |
|
|
|
aleatoire() |
|
|
|
lst_lettre_tire=[] |
|
|
|
|
|
|
|
lettre_à_supp=[] |
|
|
|
lst_mot_possible=[] |
|
|
|
for i_mot in range(len(lst_mot)): |
|
|
|
if len(lst_mot[i_mot]) == len(list_l_pendue): |
|
|
|
lst_mot_possible.append(lst_mot[i_mot]) |
|
|
|
|
|
|
|
while not(sorted(list_l_pendue)==sorted(lettre_à_supp) or moment_mort==0) : |
|
|
|
lettre_choisie=lst_lettre[i][randint(0,len(lst_lettre[i])-1)] |
|
|
|
lettre_maj=["a",0] |
|
|
|
lst_lettre=[{"lettre":"a","val":0},{"lettre":"e","val":0},{"lettre":"i","val":0},{"lettre":"o","val":0},{"lettre":"u","val":0},{"lettre":"y","val":0},{"lettre":"z","val":0},{"lettre":"r","val":0},{"lettre":"t","val":0},{"lettre":"n","val":0},{"lettre":"p","val":0},{"lettre":"q","val":0},{"lettre":"s","val":0},{"lettre":"d","val":0},{"lettre":"f","val":0},{"lettre":"g","val":0},{"lettre":"h","val":0},{"lettre":"j","val":0},{"lettre":"k","val":0},{"lettre":"l","val":0},{"lettre":"m","val":0},{"lettre":"w","val":0},{"lettre":"x","val":0},{"lettre":"c","val":0},{"lettre":"v","val":0},{"lettre":"b","val":0}] |
|
|
|
#print(lst_mot_possible,mot_aleatoire) |
|
|
|
for i_mot in range(0,len(lst_mot_possible)): |
|
|
|
for i_lettre in range(0,len(lst_mot_possible[i_mot])): |
|
|
|
for i_lettre_test in range(25): |
|
|
|
#print(lst_mot_possible[i_mot][i_lettre],lst_lettre[i_lettre_test]["lettre"],lst_lettre_tire) |
|
|
|
if lst_mot_possible[i_mot][i_lettre].lower()==lst_lettre[i_lettre_test]["lettre"] and not(lst_mot_possible[i_mot][i_lettre].lower() in lst_lettre_tire): |
|
|
|
lst_lettre[i_lettre_test]["val"]=lst_lettre[i_lettre_test]["val"]+1 |
|
|
|
if lettre_maj[1]<lst_lettre[i_lettre_test]["val"]: |
|
|
|
lettre_maj=[lst_lettre[i_lettre_test]["lettre"],lst_lettre[i_lettre_test]["val"]] |
|
|
|
|
|
|
|
lettre_choisie=lettre_maj[0] |
|
|
|
moment_mort_avant=moment_mort |
|
|
|
lst_lettre_tire.append(lettre_choisie) |
|
|
|
pendue_jeux(lettre_choisie) |
|
|
|
for i_lettre in range(len(list_l_pendue)): |
|
|
|
if lettre_choisie == list_l_pendue[i_lettre].lower() and not(lettre_choisie in lettre_à_supp_av): |
|
|
|
lst_lettre[i]=lst_lettre[i] + lettre_choisie |
|
|
|
break |
|
|
|
elif not(lettre_choisie in lettre_à_supp_av)==True and i_lettre==25: |
|
|
|
nb_l_reajouter=-1 |
|
|
|
for i_lettre in range(0,len(lst_lettre[i])): |
|
|
|
if lst_lettre[i][i_lettre] ==lettre_choisie: |
|
|
|
nb_l_reajouter=nb_l_reajouter+1 |
|
|
|
lst_lettre[i]=lst_lettre[i].replace(lst_lettre_tire[i],"") +lettre_choisie*nb_l_reajouter |
|
|
|
if len(lst_lettre[i])==0: |
|
|
|
lst_lettre[i]="azertyuiopqsdfghjklmwxcvbn" |
|
|
|
break |
|
|
|
|
|
|
|
print(lettre_choisie,lst_mot_possible,lettre_maj,mot_aleatoire,lst_lettre_tire, sorted(list_l_pendue), sorted(lettre_à_supp)) |
|
|
|
print(" ") |
|
|
|
for i_mot in range(len(lst_mot_possible)-1,-1,-1): |
|
|
|
nb_lettre=0 |
|
|
|
for i_lettre in range(len(lst_mot_possible[i_mot])): |
|
|
|
|
|
|
|
if moment_mort==moment_mort_avant: |
|
|
|
#supprime les mot qui ne contiennent pas la lettre |
|
|
|
#print("=",lst_mot_possible[i_mot],lst_lettre_tire) |
|
|
|
if lst_mot_possible[i_mot][i_lettre].lower() in lst_lettre_tire[len(lst_lettre_tire)-1] : |
|
|
|
nb_lettre=nb_lettre+1 |
|
|
|
break |
|
|
|
else: |
|
|
|
#supprime les mot qui contiennent la lettre |
|
|
|
#print(lst_mot_possible[i_mot],lst_lettre_tire,lst_mot_possible[i_mot][i_lettre] in lst_lettre_tire[len(lst_lettre_tire)-1] ) |
|
|
|
if lst_mot_possible[i_mot][i_lettre].lower() in lst_lettre_tire[len(lst_lettre_tire)-1]: |
|
|
|
break |
|
|
|
if i_lettre==len(lst_mot_possible[i_mot])-1: |
|
|
|
nb_lettre=nb_lettre+1 |
|
|
|
if nb_lettre==0: |
|
|
|
lst_mot_possible.pop(i_mot) |
|
|
|
|
|
|
|
i=i+1 |
|
|
|
print("fini",nb_essaie) |
|
|
|
if nb_essaie %1000==0: |
|
|
|
print(lst_lettre,rate,victoire,mot_victoire) |
|
|
|
|
|
|
|
if nb_essaie %1001==0: |
|
|
|
print(rate,victoire,mot_victoire) |
|
|
|
victoire=0 |
|
|
|
rate=0 |
|
|
|
mot_victoire=[] |
|
|
|