i'm trying to make an AI that beat the snake so i decided to make the game and it worked but then i added some calculations and the tkinter windows won't open there is no errors my code is not perfect but it is here: (i worked on setoutput before it didn't work, avance is the main function and the function refresh refresh the screen)
from tkinter import*
from random import*
pp=0
neuron=[]
step=0
k=[]
score=0
n=[]
w=[]
for j in range (5):
for i in range (5):
n.append(0)
for k in range (5):
w.append([randint(-100000,100000)/1000000,randint(-100000,100000)/1000000])
print(n)
print(w)
highscore=0
fen=Tk()
fen.title('IA')
grille=[0 for i in range(100)]
canvas=Canvas(fen,width=1000,height=500,bg="white")
canvas.pack()
color=['blue','red','orange','yellow']
color2=['black','white']
def check(neuron):
global grille
return grille[neuron]
def setinput(a):
global grille
premiers=[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,
101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,
211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293,
307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,
401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499,
503, 509, 521, 523, 541]
tt=1
val=0
for i in range (0+25*a,25+25*a):
val+=1
tt=tt*premiers[val]**grille[i]
return tt
def setoutput():
global n,w
output=0
inp=setinput(0)
layer2=[]
for i in range (5):
for z in range(4):
inp=setinput(z)
v=w[i]
fac=v[0]
b=v[1]
print (fac)
print(b)
print(inp)
layer2.append(max(0,(float(inp)*float(fac)+float(b))))
print(layer2)
layer3=[]
for i in range(5,10):
for e in list(layer2):
v=w[i]
fac=v[0]
b=v[1]
layer3.append(max(0,(float(inp)*float(fac)+float(b))))
d=0
début=1
pos=44
stop=0
long=[]
grille[pos]=1
def refresh():
global grille
val=0
canvas.delete('all')
for y in range (10):
for x in range (10):
canvas.create_rectangle(x*500/10,y*500/10,x*500/10+500/10,y*(500/10)+500/10,fill=color[grille[val]],outline='black')
val+=1
def refresh2():
global a,color,tt,k,grille
val=0
canvas.create_text(550,100,text=('step:',step),fil='blue')
canvas.create_text(750,200,text=('input:',setinput(0)),fil='blue')
canvas.create_text(750,300,text=('input:',setinput(1)),fil='blue')
canvas.create_text(750,400,text=('input:',setinput(2)),fil='blue')
canvas.create_text(750,500,text=('input:',setinput(3)),fil='blue')
def restart():
global grille,pos,long,d,val,stop,début,step
d=0
step=0
pos=44
if début==0:
long=[pos]
grille=[0 for i in range(100)]
grille[pos]=1
val=0
stop=1
canvas.delete('all')
if début==0:
pomme()
if début==1:
début=0
avance()
def fin():
global stop,grille
stop=0
restart()
def haut(event):
global pos,long,grille
grille[pos]=2
long.append(pos)
pos=pos-10
if pos<-99:
pos+=100
if grille[pos]==2:
fin()
if grille[pos]==3:
avanceup(1)
grille[pos]=1
refresh()
def bas(event):
global pos,long,grille
grille[pos]=2
long.append(pos)
pos=pos+10
if pos>99:
pos-=100
if grille[pos]==2:
fin()
if grille[pos]==3:
avanceup(1)
grille[pos]=1
refresh()
def gauche(event):
global pos,long,grille
grille[pos]=2
long.append(pos)
pos=pos-1
if pos%10==9:
pos+=10
if pos<0:
pos+=100
if grille[pos]==2:
fin()
if grille[pos]==3:
avanceup(1)
grille[pos]=1
refresh()
def droit(event):
global pos,long,grille
grille[pos]=2
long.append(pos)
pos=pos+1
if pos%10==0:
pos-=10
if pos>0:
pos-=100
if grille[pos]==2:
fin()
if grille[pos]==3:
avanceup(1)
grille[pos]=1
refresh()
pass
def changeh(event):
global d,grille
d=2
def changeb(event):
global d,grille
d=0
def changed(event):
global d,grille
d=1
def changeg(event):
global d,grille
d=3
def avanceup(event):
global d,long,grille,step
step=0
if d==0:
bas(1)
if d==1:
droit(1)
if d==2:
haut(1)
if d==3:
gauche(1)
fen.bind('z',changeh)
fen.bind('s',changeb)
fen.bind('d',changed)
fen.bind('q',changeg)
grille[long[0]]=0
pomme()
def pomme():
global grille,pp
pp=randint(0,99)
while grille[pp]==1 or grille[pp]==2:
pp=randint(0,99)
grille[pp]=3
if grille[pp]!=3:
fen.after(1,pomme)
def avance():
global d,long,grille,step,score,highscore,pp,grille
score=len(long)
fen.after(100,avance)
step+=1
refresh2()
if score<highscore:
highscore=score
if stop==1:
if d==0:
bas(1)
if d==1:
droit(1)
if d==2:
haut(1)
if d==3:
gauche(1)
fen.bind('z',changeh)
fen.bind('s',changeb)
fen.bind('d',changed)
fen.bind('q',changeg)
grille[long[0]]=0
del long[0]
if grille[pp]!=3:
grille[pp]=3
score=len(long)
setinput(0)
if step>100:
fin()
refresh2()
setoutput()
pomme()
restart()
val=0
setoutput()
fen.bind
fen.mainloop()
i tried to restart python, change the if conditions in avance() and change the order of functiun call at the end of the code.