snake game in python

To craft a Snake game in Python, you’ll need to utilize the Pygame library, which offers robust tools for graphics and user interaction.

The fundamental gameplay of Snake is straightforward: players control a snake that navigates the screen, consuming food to extend its length. The game concludes when the snake collides with itself or the screen boundaries.

To develop a Python Snake game, you’ll need to address the following crucial components:

1. Snake Movement: Establish a system to manage the snake’s direction and update its position in response to user input, such as keyboard presses or arrow keys.

2. Food Generation: Implement a mechanism to randomly generate food items on the screen.

3. Collision Detection: Detect collisions between the snake, food, and screen edges. When the snake consumes food, it should grow, and the player’s score should increase.

4. Game Loop: Create a game loop that continuously updates the game state and refreshes the screen, enabling real-time interaction.

5. Scoring: Keep track of the player’s score as they collect food items.

6. Game Over Condition: Develop a game over condition that triggers when the snake collides with itself or the screen edges. After the game ends, display the final score and offer the player the option to restart.

NOTE: i used this snake game source code in replit that why i don’t need to install module . if you want to use it in another text editor/IDE’s so you may need to install the modules.

Replit preview

Here is snake game source code

import pygame
import time
import random
# Visit www.codebyrolex.com
pygame.init()

white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
light_purple = (200, 191, 231)  # Light purple color

dis_width = 760
dis_height = 700

dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('Snake Game visit www.codebyrolex.com')

clock = pygame.time.Clock()

snake_block = 10
snake_speed = 15

font_style = pygame.font.SysFont("bahnschrift", 25)
score_font = pygame.font.SysFont("comicsansms", 35)


def Your_score(score):
    value = score_font.render("Your Score: " + str(score), True, yellow)
    dis.blit(value, [0, 0])


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 == True:
            dis.fill(light_purple)  # Light purple background
            message("You Lost! Press C-Play Again or Q-Quit. codebyrolex.com", 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 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
            game_close = True
        x1 += x1_change
        y1 += y1_change
        dis.fill(light_purple)  # Light purple background
        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)
        Your_score(Length_of_snake - 1)

        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()
Python

Final words

hello everyone hope you love this python game . if you have any doubt releated to this post so please leave a comments and check out our other post.

Share your love

Leave a Reply

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