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'
- MAX_X = width/grid
- MAX_Y = height/grid
- openWindow = True
- canvas = pygame.display.set_mode((width,height))
- pygame.display.set_caption('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)
- def returnVal(self):
- return (self.x == o.x and self.y == o.y)
- class Food():
- def __init__(self, x, y,):
- self.x = x
- self.y = y
- def randomizeFood(self):
- self.x = random.randint(0, MAX_X - 1)
- self.y = random.randint(0, MAX_Y - 1)
- return (self.x, self.y)
- def showFood(self, x, y):
- pygame.draw.rect(canvas, foodColor, (self.x*grid, self.y*grid, grid, grid), 0)
- class Snake():
- def __init__(self,x,y):
- self.x = x
- self.y = y
- self.speed = 1
- self.snake =[]
- self.snake.append(Square(x, y, snakeColor))
- def updateSnake(self, direction):
- if direction == 'up':
- snakeHead = Square(self.snake[0].x, self.snake[0].y - self.speed, snakeColor)
- if direction == 'down':
- snakeHead = Square(self.snake[0].x, self.snake[0].y + self.speed, snakeColor)
- if direction == 'left':
- snakeHead = Square(self.snake[0].x - self.speed, self.snake[0].y, snakeColor)
- if direction == 'right':
- snakeHead = Square(self.snake[0].x + self.speed, self.snake[0].y, snakeColor)
- self.snake.insert(0, snakeHead)
- global xFood, yFood
- if xFood == snakeHead.x and yFood == snakeHead.y:
- xFood, yFood = f.randomizeFood()
- else:
- self.snake.pop()
- f.showFood(xFood, yFood)
- def showSnake(self):
- if self.snake[0].x >= MAX_X:
- self.snake[0].x = MAX_X-1
- if self.snake[0].x <= 0:
- self.snake[0].x = 0
- if self.snake[0].y >= MAX_Y:
- self.snake[0].y = MAX_Y-1
- if self.snake[0].y <= 0:
- self.snake[0].y = 0
- for pos in range(len(self.snake)):
- pygame.draw.rect(canvas, snakeColor, (self.snake[pos].x*grid, self.snake[pos].y*grid, grid, grid), 0)
- 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
- xFood, yFood = 20, 10
- f = Food(xFood, yFood)
- s = Snake(15, 15)
- 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