Browse Source

Je ne sais plus si c'est une ia mais réussite à 1000/1000 ou 100% cherche les mot de même taille puis prend les lettres à l'intérieur et plus rapide

master
philippot.m 2 weeks ago
parent
commit
8f47714867
  1. 105
      Pendue_que_j_ai_du_refaire_car_je_suis_con.py

105
Pendue_que_j_ai_du_refaire_car_je_suis_con.py

@ -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=[]

Loading…
Cancel
Save