Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import random
- import time
- snakeColor = (255,255,255)
- foodColor = (255,255,0)
- width = 600
- height = 600
- grid = 20
- direction = 'up'
- openWindow = True
- canvas = pygame.display.set_mode((width,height))
- pygame.display.set_caption('Snake')
- snake =[]
- class Square():
- def __init__(self, x, y, color):
- self.x = x
- self.y = y
- self.color = color
- def show(self):
- pygame.draw.rect(canvas, self.color, (self.x * grid, self.y * grid, grid, grid), 0)
- class Food():
- def __init__(self, color):
- self.color = color
- def randomizeFood(self):
- x = random.randrange(0, width, grid)
- y = random.randrange(0, height, grid)
- return x, y
- def showFood(self, x, y):
- pygame.draw.rect(canvas, self.color, (x, y, grid, grid), 0)
- class Snake():
- def __init__(self):
- self.x = 6
- self.y = 6
- self.speed = 1
- self.color = snakeColor
- snake.append(Square(self.x, self.y, snakeColor))
- snake.append(Square(self.x, self.y + 1, snakeColor))
- snake.append(Square(self.x, self.y + 2, snakeColor))
- def updateSnake(self, direction):
- if direction == 'up':
- snakeHead = Square(self.x, self.y - self.speed, snakeColor)
- print(direction)
- if direction == 'down':
- snakeHead = Square(self.x, self.y + self.speed, snakeColor)
- print(direction)
- if direction == 'left':
- snakeHead = Square(self.x - self.speed, self.y, snakeColor)
- print(direction)
- if direction == 'right':
- snakeHead = Square(self.x + self.speed, self.y, snakeColor)
- print(direction)
- snake.insert(0, snakeHead)
- eatFood()
- def showSnake(self):
- MAX_X = width/grid
- MAX_Y = height/grid
- if self.x >= MAX_X:
- self.x = MAX_X-1
- if self.x <= 0:
- self.x = 0
- if self.y >= MAX_Y:
- self.y = MAX_Y-1
- if self.y <= 0:
- self.y = 0
- pygame.draw.rect(canvas, self.color, (self.x*grid, self.y*grid, grid, grid), 0)
- return self.x*grid, self.y*grid
- def keyPressed():
- keys = pygame.key.get_pressed()
- global direction
- if (keys[pygame.K_RIGHT]):
- direction = 'right'
- if (keys[pygame.K_LEFT]):
- direction = 'left'
- if (keys[pygame.K_UP]):
- direction = 'up'
- if (keys[pygame.K_DOWN]):
- direction = 'down'
- return direction
- def eatFood():
- global xFood, yFood
- xSnake, ySnake = s.showSnake()
- if xFood == xSnake and yFood == ySnake:
- xFood, yFood = f.randomizeFood()
- else:
- snake.pop()
- f.showFood(xFood, yFood)
- f = Food(foodColor)
- s = Snake()
- xFood, yFood = 40,40
- while openWindow == True:
- canvas.fill((0,0,0))
- snakeDir = keyPressed()
- s.updateSnake(snakeDir)
- s.showSnake()
- pygame.display.flip()
- time.sleep(0.1)
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- openWindow = False
Advertisement
Add Comment
Please, Sign In to add comment