0% found this document useful (0 votes)
16 views8 pages

Game report

The Snake Game is a classic arcade game developed using Python and the Pygame library, where players control a snake to consume food and grow while avoiding collisions. The report outlines the game mechanics, implementation steps, and provides sample code for creating the game. It serves as a beginner-friendly project to practice programming concepts and offers opportunities for further enhancements.

Uploaded by

hz1120804000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views8 pages

Game report

The Snake Game is a classic arcade game developed using Python and the Pygame library, where players control a snake to consume food and grow while avoiding collisions. The report outlines the game mechanics, implementation steps, and provides sample code for creating the game. It serves as a beginner-friendly project to practice programming concepts and offers opportunities for further enhancements.

Uploaded by

hz1120804000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

1 of 8

Snake Game Report

Introduction
The Snake Game is a classic arcade game where the player controls a snake that moves around
the screen, consuming food to grow longer while avoiding collisions with the walls or itself. The
primary objective is to achieve the highest score possible.

Technologies Used
- Python: The main programming language for developing the game.
- Pygame: A popular library used for writing video games in Python, providing features like
graphics, sound, and game mechanics.

Game Mechanics
1. Game Area: The game is played on a rectangular grid.
2. Snake: The player controls a snake that moves in a fixed direction (up, down, left, right) on
the grid. The snake grows longer as it consumes food.
3. Food: Randomly placed items on the game area that the snake must eat to grow and increase
the score.
4. Scoring: The player earns points for every piece of food consumed.
5. Game Over Conditions:
- The snake collides with the walls of the game area.
- The snake collides with itself.

Implementation Steps
1. Setting Up the Environment: Ensure Python and the Pygame library are installed.
bash
pip install pygame

2 of 8
2. Creating the Game Window: Initialize Pygame and set up the game window.

3. Game Loop: Implement the main loop where the game will continuously run, checking for
events, updating game states, and rendering graphics.

4. Snake Movement: Capture keyboard input to change the direction of the snake.

5. Food Generation: Randomly generate food positions on the grid.

6. Collision Detection: Check for collisions between the snake and food or walls.

7. Rendering: Draw the snake, food, and score on the screen.

8. Game Restart: Implement a mechanism to restart the game after a game over.

Code:
import pygame
import time
import random

# Initialize Pygame
pygame.init()

# Define colors
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
3 of 8
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)

# Set display dimensions


width = 600
height = 400
display = pygame.display.set_mode((width, height))
pygame.display.set_caption('Snake Game')

# Set clock
clock = pygame.time.Clock()

# Set snake parameters


snake_block = 10
snake_speed = 15

# Define font styles


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

def our_snake(snake_block, snake_list):


for x in snake_list:
pygame.draw.rect(display, black, [x[0], x[1], snake_block, snake_block])

def your_score(score):
value = score_font.render("Score: " + str(score), True, black)
display.blit(value, [0, 0])
4 of 8
def message(msg, color):
mesg = font_style.render(msg, True, color)
display.blit(mesg, [width / 6, height / 3])

def gameLoop():
game_over = False
game_close = False

x1 = width / 2
y1 = height / 2

x1_change = 0
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 == True:


display.fill(blue)
message("You Lost! Press C-Play Again or Q-Quit", red)
your_score(Length_of_snake - 1)
pygame.display.update()
5 of 8
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
6 of 8
x1 += x1_change
y1 += y1_change
display.fill(blue)
pygame.draw.rect(display, 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, 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)

7 of 8
pygame.quit()
quit()

if _name_ == "_main_":
gameLoop()

Conclusion
The Snake Game is an excellent project for beginners to practice programming concepts such as
loops, conditionals, functions, and object-oriented programming. By expanding on this basic
implementation, developers can learn more about game design, user interface, and even
incorporate advanced features like sound effects and high score tracking.

8 of 8

You might also like