Skip to content

Python Code for Snake Game

Python Code for Snake Game

Python Code for Snake Game is the fun and educative code in python launguage. This article will guide you through writing a simple snake game in Python using the Pygame library. We’ll cover everything from setting up your environment to writing the game logic and running your game. By the end of this article, you’ll have a fully functional snake game and a deeper understanding of Python programming.

Setting Up the Environment for Python Code for Snake Game

Before we dive into the code, you need to set up your Python environment and install the necessary libraries.

  1. Install Python: If you haven’t already, download and install Python from the official Python website.
  2. Install Pygame: Pygame is a popular library for creating games in Python. Install it using pip:
pip install pygame

Game Overview

The snake game consists of a snake that moves around the screen, eating food, and growing in size. The game ends if the snake collides with itself or the screen boundaries.

Step-by-Step Guide to Creating the Snake Game

1. Importing Libraries

First, import the necessary libraries:


import pygame
import time
import random

2. Initializing Pygame

Initialize the Pygame library and set up the game window:

pygame.init()
# Define 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)
# Set display dimensions
dis_width = 800
dis_height = 600
# Create the display
dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('Snake Game')
# Set the game clock
clock = pygame.time.Clock()
snake_block = 10
snake_speed = 15

3. Defining the Snake and Food

Define the snake and food objects and their behaviors:

font_style = pygame.font.SysFont(None, 50)
score_font = pygame.font.SysFont(None, 35)
def our_snake(snake_block, snake_list):
    for x in snake_list:
        pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])
def message(msg, color):
    mesg = font_style.render(msg, True, color)
    dis.blit(mesg, [dis_width / 6, dis_height / 3])
def gameLoop():
    game_over = False
    game_close = False
    x1 = dis_width / 2
    y1 = dis_height / 2
    x1_change = 0
    y1_change = 0
    snake_List = []
    Length_of_snake = 1
    foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
    foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
    while not game_over:
        while game_close:
            dis.fill(blue)
            message("You Lost! Press Q-Quit or C-Play Again", red)
            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 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
            game_close = True
        x1 += x1_change
        y1 += y1_change
        dis.fill(blue)
        pygame.draw.rect(dis, green, [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)
        pygame.display.update()
        if x1 == foodx and y1 == foody:
            foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
            foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
            Length_of_snake += 1
        clock.tick(snake_speed)
    pygame.quit()
    quit()
gameLoop()

Explaining the Code

Importing Libraries

We start by importing the Pygame library and other necessary libraries like time and random.

Initializing Pygame

We initialize Pygame and set up the display dimensions and colors. This section also includes setting the title of the game window and the clock speed.

Defining the Snake and Food

We define functions to display the snake and messages on the screen. The our_snake function draws the snake, and the message function displays text messages.

Game Loop

The gameLoop function contains the main logic of the game:

  • Game Over Conditions: The game ends if the snake collides with itself or the boundaries.
  • Movement: The snake moves according to the arrow keys pressed.
  • Food Generation: Food is randomly placed on the screen, and the snake grows when it eats the food.
  • Score Update: The score increases as the snake eats more food.

Running the Game

Finally, we call the gameLoop function to start the game.

  1. Game Over Screenshot: Capture the screen when the game ends to illustrate the game over condition.

Conclusion

Creating a snake game in Python is an excellent way to learn game development and enhance your programming skills. This project covers basic concepts like user input, game loops, and collision detection. By following this guide, you can build a fully functional snake game and customize it further to add more features and improve your skills.

For more readings about programming check out :https://menlypedia.xyz/category/programming/


References

  1. Pygame Documentation. (n.d.). Retrieved from Pygame.
  2. Python Official Documentation. (n.d.). Retrieved from Python.org.

Leave a Reply

Your email address will not be published. Required fields are marked *