diff --git a/snake/snake.py b/snake/snake.py index cb83301..851c55a 100755 --- a/snake/snake.py +++ b/snake/snake.py @@ -4,7 +4,7 @@ import sys, pygame class Snake: - def __init__(self, length=10,grid_width=50,grid_height=50, grid_pts=15,fps=2): + def __init__(self, length=10,grid_width=50,grid_height=50, grid_pts=15,fps=10): self.grid_width=grid_width self.grid_height=grid_height self.grid_pts=grid_pts @@ -19,17 +19,23 @@ class Snake: pygame.draw.rect(self.screen,color,rect, 0) def move(self): - head=self.snake[0] - if self.direction==3: - head=(head[0]+1,head[1]) + # Update tail if len(self.snake)>1: - tmp=head + tmp=self.snake[0] for i in range(1,len(self.snake)): newtmp=self.snake[i] self.snake[i]=tmp tmp=newtmp - self.snake[0]=head - + # Update head + h=self.snake[0] # Head + if self.direction==3: + self.snake[0]=(h[0]+1,h[1]) + elif self.direction==9: + self.snake[0]=(h[0]-1,h[1]) + elif self.direction==12: + self.snake[0]=(h[0],h[1]-1) + else: + self.snake[0]=(h[0],h[1]+1) def draw_snake(self): for elt in self.snake: @@ -37,11 +43,21 @@ class Snake: def run(self): clock = pygame.time.Clock() + self.direction=6 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT and self.direction != 3: + self.direction=9 + if event.key == pygame.K_RIGHT and self.direction != 9: + self.direction=3 + if event.key == pygame.K_UP and self.direction != 6: + self.direction=12 + if event.key == pygame.K_DOWN and self.direction != 12: + self.direction=6 self.screen.fill((0,0,0)) self.draw_snake()