Je suis actuellement en classe de terminal option ISN et j'ai comme projet de crée un snake, mais malheureusement j'ai un petit problème avec mon serpent lorsqu'il avance il n'y a que la tête qui avance et l'arrière non cela fait que le serpent dessine en quelque sorte.
Voici le code que j'ai réaliser pour l'instant, si quelqu'un pourrais me venir en aide.
t=[1]*21
for i in range(0,21):
t[i]=[1]*21
for i in range(0,21):
t[0][i]=a
t[i][20]=a
t[20][i]=a
t[i][0]=a
t[8][7]=c
t[8][8]=c
t[8][9]=c
queue_i=8
queue_j=9
tete_i=8
tete_j=7
sens=1#1 haut2 droite 3 bas et 4 gauche
for i in range(0,21):
print(t[i])
def affiche(t):
for i in range(0,21):
for j in range(0,21):
if t[i][j]=="mur":
fenetre.blit(mur, (40*i+40,40*j+40))
if t[i][j]=="fond":
fenetre.blit(fond, (40*i+40,40*j+40))
if t[i][j]=="serpent":
fenetre.blit(serpent, (40*i+40,40*j+40))
pygame.display.flip()
affiche(t)
continuer = 1
while continuer:
for event in pygame.event.get():
if event.type == QUIT:
continuer = 0
if event.type == KEYDOWN:
if event.key == K_LEFT:
if sens==3:
sens=4
elif sens==4:
sens=4
elif sens==1:
sens=4
elif sens==2:
sens=2
if event.key == K_RIGHT:
if sens==3:
sens=2
elif sens==4:
sens=4
elif sens==1:
sens=2
elif sens==2:
sens=2
if event.key == K_UP:
if sens==3:
sens=3
elif sens==4:
sens=1
elif sens==1:
sens=1
elif sens==2:
sens=1
if event.key == K_DOWN:
if sens==1:
sens=1
elif sens==3:
sens=3
elif sens==4:
sens=3
elif sens==2:
sens=3
#if event.key == K_p:
# if time.sleep(0.1):
# time.sleep(9999999999999999999)
# elif time.sleep(9999999999999999999):
# time.sleep(0.1)
#1 haut 2 droite 3 bas et 4 gauche
if sens==4:
tete_i=tete_i-1
queue_i=queue_i
if sens==3:
tete_j=tete_j+1
queue_i=queue_i
if sens==2:
tete_i=tete_i+1
queue_i=queue_i
if sens==1:
tete_j=tete_j-1
queue_i=queue_i
time.sleep(0.1)
t[queue_i][queue_j]="fond"
t[tete_i][tete_j]=c
affiche(t)