Free Coding Ebook 👉 Get Now
Create a Snake Game using Python
It’s time to code a game in Python. Hello coder, welcome to the codewithrandom blog. In this article, we create a Snake Game using Python Programming with Complete Source Code. We will start with a most popular Snake Game where the player controls a snake that moves around a screen and tries to eat food while avoiding the walls and its own tail. In Python, the Snake game can be implemented using the tkinter , which provides an easy way to create interactive 2D games.
Project Requirements
In this Snake Game project We need to import random & tkinter module.
from tkinter import * import random
To play the Snake game in Python, you can follow these steps:
- open any python code Editor.
- Import the required module .
- Copy the code for the Snake game implementation in Python, which I provided Below in this article, and save it in a file named “snake_game.py” (or any other name you prefer).
- Run this
python file snake_game.py
to start the game. - Use the arrow keys on your keyboard to move the snake around the screen and try to eat the food without running into the walls or the snake’s own tail.
ADVERTISEMENT
That’s it! Have fun playing the Snake game in Python.
complete project code👇👇
#import module from tkinter import * import random #Set the dimensions of the game. GAME_WIDTH = 700 GAME_HEIGHT = 700 SPEED = 100 SPACE_SIZE = 50 BODY_PARTS = 3 # Initialising color SNAKE_COLOR = "#00FF00" FOOD_COLOR = "#FF0000" BACKGROUND_COLOR = "#000000" #To create the snake in the game class Snake: def __init__(self): self.body_size = BODY_PARTS self.coordinates = [] self.squares = [] for i in range(0, BODY_PARTS): self.coordinates.append([0, 0]) for x, y in self.coordinates: square = canvas.create_rectangle(x, y, x + SPACE_SIZE, y + SPACE_SIZE, fill=SNAKE_COLOR, tag="snake") self.squares.append(square) #To create the food in the game class Food: def __init__(self): x = random.randint(0, (GAME_WIDTH / SPACE_SIZE)-1) * SPACE_SIZE y = random.randint(0, (GAME_HEIGHT / SPACE_SIZE) - 1) * SPACE_SIZE self.coordinates = [x, y] canvas.create_oval(x, y, x + SPACE_SIZE, y + SPACE_SIZE, fill=FOOD_COLOR, tag="food") #Turn and collision checking def next_turn(snake, food): x, y = snake.coordinates[0] if direction == "up": y -= SPACE_SIZE elif direction == "down": y += SPACE_SIZE elif direction == "left": x -= SPACE_SIZE elif direction == "right": x += SPACE_SIZE snake.coordinates.insert(0, (x, y)) square = canvas.create_rectangle(x, y, x + SPACE_SIZE, y + SPACE_SIZE, fill=SNAKE_COLOR) snake.squares.insert(0, square) if x == food.coordinates[0] and y == food.coordinates[1]: global score score += 1 label.config(text="Score:{}".format(score)) canvas.delete("food") food = Food() else: del snake.coordinates[-1] canvas.delete(snake.squares[-1]) del snake.squares[-1] if check_collisions(snake): game_over() else: window.after(SPEED, next_turn, snake, food) # Function to control direction of snake def change_direction(new_direction): global direction if new_direction == 'left': if direction != 'right': direction = new_direction elif new_direction == 'right': if direction != 'left': direction = new_direction elif new_direction == 'up': if direction != 'down': direction = new_direction elif new_direction == 'down': if direction != 'up': direction = new_direction # function to check snake's collision and position def check_collisions(snake): x, y = snake.coordinates[0] if x < 0 or x >= GAME_WIDTH: return True elif y < 0 or y >= GAME_HEIGHT: return True for body_part in snake.coordinates[1:]: if x == body_part[0] and y == body_part[1]: return True return False # method that controls everything def game_over(): canvas.delete(ALL) canvas.create_text(canvas.winfo_width()/2, canvas.winfo_height()/2, font=('consolas',70), text="GAME OVER", fill="red", tag="gameover") window = Tk() window.title("Snake game") window.resizable(False, False) score = 0 direction = 'down' label = Label(window, text="Score:{}".format(score), font=('consolas', 40)) label.pack() canvas = Canvas(window, bg=BACKGROUND_COLOR, height=GAME_HEIGHT, width=GAME_WIDTH) canvas.pack() window.update() window_width = window.winfo_width() window_height = window.winfo_height() screen_width = window.winfo_screenwidth() screen_height = window.winfo_screenheight() x = int((screen_width/2) - (window_width/2)) y = int((screen_height/2) - (window_height/2)) window.geometry(f"{window_width}x{window_height}+{x}+{y}") window.bind('<Left>', lambda event: change_direction('left')) window.bind('<Right>', lambda event: change_direction('right')) window.bind('<Up>', lambda event: change_direction('up')) window.bind('<Down>', lambda event: change_direction('down')) snake = Snake() food = Food() next_turn(snake, food) window.mainloop()
Output 👇👇
Summary
Hurray! You have successfully Create the a most popular Snake Game project using the Python . We learned to create amazing python project , Snake Game . but it’s also popular amongst the python developers to develop games in python. Hope you enjoyed building with us! Visit our homepage and you get lot’s of projects💝.