Snake sous pyhton et pygame 3.2

SK - 13 avril 2015 à 13:40
 SK - 13 avril 2015 à 18:16
Bonjour,

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.



import pygame, time
from pygame.locals import *
pygame.init()
mur = pygame.image.load("carrenoir.jpg")
a="mur"
b="fond"
c="serpent"
fenetre = pygame.display.set_mode((900, 900))
fond = pygame.image.load("carrenoir.jpg").convert()
serpent = pygame.image.load("carrevert.jpg").convert()
mur = pygame.image.load("carreblanc.jpg").convert()
pomme = pygame.image.load("pomme.jpg").convert()

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)

1 réponse

Personne pour m'aider ???
0
Rejoignez-nous