
We are providing you the code for a full working Snake Game in Python using Pygame. Most of us may have played this interesting game in our childhood.
For this game to run in your system you should have pygame installed in your system.
To install pygame in your system, type the following commands in your terminal–
"pip install pygame"If this does not work then try this one–
"py -m pip install -U pygame --user"Some short–
"py -m pip install pygame"Lets see the code now.
Code for snake game in python
import pygame
import random
# initializing pygame
pygame.init()
# Colors
white = (255, 255, 255) # rgb format
red = (255, 0, 0)
black = (0, 0, 0)
# Creating window
screen_width = 900
screen_height = 600
gameWindow = pygame.display.set_mode((screen_width, screen_height))
# Game Title
pygame.display.set_caption("Coders Home")
pygame.display.update()
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 55)
def text_screen(text, color, x, y):
screen_text = font.render(text, True, color)
gameWindow.blit(screen_text, [x,y])
def plot_snake(gameWindow, color, snk_list, snake_size):
for x,y in snk_list:
pygame.draw.rect(gameWindow, color, [x, y, snake_size, snake_size])
# Game Loop
def gameloop():
exit_game = False
game_over = False
snake_x = 45
snake_y = 55
velocity_x = 0
velocity_y = 0
snk_list = []
snk_length = 1
food_x = random.randint(20, screen_width-20)
food_y = random.randint(60, screen_height -20)
score = 0
init_velocity = 4
snake_size = 30
fps = 60 # fps = frames per second
while not exit_game:
if game_over:
gameWindow.fill(white)
text_screen("Game Over! Press Enter To Continue", red, 100, 250)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
gameloop()
else:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
velocity_x = init_velocity
velocity_y = 0
if event.key == pygame.K_LEFT:
velocity_x = - init_velocity
velocity_y = 0
if event.key == pygame.K_UP:
velocity_y = - init_velocity
velocity_x = 0
if event.key == pygame.K_DOWN:
velocity_y = init_velocity
velocity_x = 0
snake_x = snake_x + velocity_x
snake_y = snake_y + velocity_y
if abs(snake_x - food_x)<10 and abs(snake_y - food_y)<10:
score +=1
food_x = random.randint(20, screen_width - 30)
food_y = random.randint(60, screen_height - 30)
snk_length +=5
gameWindow.fill(white)
text_screen("Score: " + str(score * 10), red, 5, 5)
pygame.draw.rect(gameWindow, red, [food_x, food_y, snake_size, snake_size])
pygame.draw.line(gameWindow, red, (0,40), (900,40),5)
head = []
head.append(snake_x)
head.append(snake_y)
snk_list.append(head)
if len(snk_list)>snk_length:
del snk_list[0]
if head in snk_list[:-1]:
game_over = True
if snake_x<0 or snake_x>screen_width-20 or snake_y<50 or snake_y>screen_height-20:
game_over = True
plot_snake(gameWindow, black, snk_list, snake_size)
pygame.display.update()
clock.tick(fps)
pygame.quit()
quit()
gameloop()Output of code for snake game in python



Also Read:

