In this tutorial, we'll create a simple Snake Game using Python. If you're a beginner or looking for a fun project, this game is perfect. Follow the steps below, copy the code, and start coding right away!
pygameTo begin, you'll need to install the pygame library. Open your terminal or command prompt and run the following command:
pip install pygame
This will install the required library to run the game.
Once you’ve installed pygame, copy the code below and paste it into a Python file (for example, snake_game.py).
import pygame
import time
import random
# Initialize pygame
pygame.init()
# Colors
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
# Window size
width = 600
height = 400
display = pygame.display.set_mode((width, height))
# Game title
pygame.display.set_caption('Snake Game')
# Clock and speed
clock = pygame.time.Clock()
snake_speed = 15
snake_block = 10
# Font for display
font_style = pygame.font.SysFont("bahnschrift", 25)
score_font = pygame.font.SysFont("comicsansms", 35)
# Score function
def your_score(score):
value = score_font.render(f"Your Score: {score}", True, yellow)
display.blit(value, [0, 0])
# Snake function
def our_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(display, green, [x[0], x[1], snake_block, snake_block])
# Game message function
def message(msg, color):
mesg = font_style.render(msg, True, color)
display.blit(mesg, [width / 6, height / 3])
# Game loop
def gameLoop():
game_over = False
game_close = False
x1 = width / 2
y1 = height / 2
# Set initial movement so the snake moves at the start
x1_change = snake_block
y1_change = 0
snake_list = []
length_of_snake = 1
foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
while not game_over:
while game_close:
display.fill(blue)
message("You Lost! Press C-Play Again or Q-Quit", red)
your_score(length_of_snake - 1)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
gameLoop()
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -snake_block
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = snake_block
x1_change = 0
if x1 >= width or x1 < 0 or y1 >= height or y1 < 0:
game_close = True
x1 += x1_change
y1 += y1_change
display.fill(black)
pygame.draw.rect(display, white, [foodx, foody, snake_block, snake_block])
snake_head = []
snake_head.append(x1)
snake_head.append(y1)
snake_list.append(snake_head)
if len(snake_list) > length_of_snake:
del snake_list[0]
for x in snake_list[:-1]:
if x == snake_head:
game_close = True
our_snake(snake_block, snake_list)
your_score(length_of_snake - 1)
pygame.display.update()
if x1 == foodx and y1 == foody:
foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
# Start the game
gameLoop()
Once you've copied the code and saved it in a Python file, run it by using this command in your terminal:
python snake_game.py
Use the arrow keys to control the snake, eat the food, and grow. Avoid hitting the walls or yourself!
---This is a fun and quick project to practice Python programming and game development. Feel free to experiment by adjusting the speed, colors, or adding new features. Happy coding!