top of page

CASE STUDY

Developer (python) | Snake Game 🐍

Contributer(s): Tyler Gustafson

Overview

A take on the classic Snake game, developed in Python. Navigate the snake aiming to devour apples and achieve high scores. This was a great opportunity to work on building classes and have an object-oriented programming approach. Dive into the digital maze and see if you can beat the high score! 

Requirements

User:

Intuitive Controls

Progressive Difficulty

Optional

- Instant Replay

- Tutorial

- Personalization Options

Functional:

Game start welcome

Food Generation

Snake movement

Collision Detection

Scoring System

High score tracker

Technical:

Python

Smooth performance

Run on multiple platforms (Windows, MacOS, Linux)

Not built for mobile

tools.png

Approach

The structure of this Snake Game app is well-organized and modular, using a clear separation of "roles" across four Python files, each containing specific classes that contribute to different aspects of the game. The movements and writing on screen were generated using the Turtle Library.

 

Here's a description of how these components work together:

Main.py

The main entry point of the game. Initializes the game environment and orchestrates the interaction between all other modules (snake, scoreboard, and food) within the game loop. It also manages the game states such as starting, playing, and game over.

Snake.py

Responsible for all functionalities related to the snake character (i.e. movement, growth, and checking for collisions with itself or the game boundaries). This module leverages the Turtle library within a created snake class to use functions to create the snake and add segments to its body as it grows. 

Scoreboard.py

Manages the scoring system. Updates the score whenever the snake eats an apple and displays the current score and high scores on screen.

Food.py

Hosts classes which handle the placement and rendering of food items (apples) on the game board. Ensures food appears at random locations that are not occupied by the snake.

This modular design not only simplifies the development and maintenance of the game by encapsulating specific functionalities within dedicated classes but also enhances the scalability of the game, allowing for easier updates and potential expansions in the future. Each class operates independently yet interacts cohesively, driven by the central game loop managed in main.py.

Final Design

snake2.gif

SNAKE 
🐍

Untitled video (2).gif

Check out the code and more on my GitHub

GitHub-logo.png
bottom of page