summaryrefslogtreecommitdiff
path: root/snake/snake.py
blob: cb8330191342102b7b14402b9145c295e84228e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
import sys, pygame


class Snake:

    def __init__(self, length=10,grid_width=50,grid_height=50, grid_pts=15,fps=2):
        self.grid_width=grid_width
        self.grid_height=grid_height
        self.grid_pts=grid_pts
        self.fps=fps
        self.snake=[(0,0)]*length
        self.direction=3 # Like clock (12=up, 3=right, 6=bottom, 9=left)
        pygame.init()
        self.screen=pygame.display.set_mode((grid_width*grid_pts,grid_height*grid_pts))

    def draw_pts(self,x,y,color=(255,255,255)):
        rect=pygame.Rect(self.grid_pts*x, self.grid_pts*y, self.grid_pts, self.grid_pts)
        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])
        if len(self.snake)>1:
            tmp=head
            for i in range(1,len(self.snake)):
                newtmp=self.snake[i]
                self.snake[i]=tmp
                tmp=newtmp
        self.snake[0]=head


    def draw_snake(self):
        for elt in self.snake:
            self.draw_pts(elt[0],elt[1])

    def run(self):
        clock = pygame.time.Clock()
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT: 
                    pygame.quit()
                    sys.exit()
            
            self.screen.fill((0,0,0))
            self.draw_snake()
            self.move()
            pygame.display.flip()
            clock.tick(self.fps)


game=Snake()
game.run()