Snake game using python

Snake game

Snake game has been the best entertaining mobile game since 1990’s. Mostly in snake game, we need one snake and a food to eat. The snake goes to eat the food while the size of the snake increases slowly. The game will end when the snake bites himself after failing to eat the food. The game is simple and can’t be cheated.
In this game, there are two different stories as the snake is made up of hash and the food is made up of Asterisk. Whenever the snake eats the food, one hash increases significantly.


As from the above picture, you can see how the project looks like when you run the game.

Things you need to install to run this game:
  1. You need to install python 2.7 or python 3.
  2. Install python libraries like curses, random, turtle, freegames and pygames.
  3. You can install these libraries with sudo pip / pip3 install and the library name.

The code looks like this:

# SNAKES GAME
# Use ARROW KEYS to play, SPACE BAR for pausing/resuming and Esc Key for exiting

import curses
from curses import KEY_RIGHT, KEY_LEFT, KEY_UP, KEY_DOWN
from random import

randint



curses.initscr()
win = curses.newwin(20, 60, 0, 0)
win.keypad(1)
curses.noecho()
curses.curs_set(0)
win.border(0)
win.nodelay(1)

key = KEY_RIGHT # Initializing values
score = 0

snake = [[4,10], [4,9], [4,8]] # Initial snake co-ordinates
food = [10,20] # First food co-ordinates

win.addch(food[0], food[1], '*') # Prints the food

while key != 27: # While Esc key is not pressed
win.border(0)
win.addstr(0, 2, 'Score : ' + str(score) + ' ') # Printing 'Score' and
win.addstr(0, 27, ' SNAKE ') # 'SNAKE' strings
win.timeout(150 - (len(snake)/5 + len(snake)/10)%120) # Increases the speed of Snake as its length increases

prevKey = key # Previous key pressed
event = win.getch()
key = key if event == -1 else event


if key == ord(' '): # If SPACE BAR is pressed, wait for another
key = -1 # one (Pause/Resume)
while key != ord(' '):
key = win.getch()
key = prevKey
continue

if key not in [KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, 27]: # If an invalid key is pressed
key = prevKey

# Calculates the new coordinates of the head of the snake. NOTE: len(snake) increases.
# This is taken care of later at [1].
snake.insert(0, [snake[0][0] + (key == KEY_DOWN and 1) + (key == KEY_UP and -1), snake[0][1] + (key == KEY_LEFT and -1) + (key == KEY_RIGHT and 1)])

# If snake crosses the boundaries, make it enter from the other side
if snake[0][0] == 0: snake[0][0] = 18
if snake[0][1] == 0: snake[0][1] = 58
if snake[0][0] == 19: snake[0][0] = 1
if snake[0][1] == 59: snake[0][1] = 1

# Exit if snake crosses the boundaries (Uncomment to enable)
#if snake[0][0] == 0 or snake[0][0] == 19 or snake[0][1] == 0 or snake[0][1] == 59: break

# If snake runs over itself
if snake[0] in snake[1:]: break


if snake[0] == food: # When snake eats the food
food = []
score += 1
while food == []:
food = [randint(1, 18), randint(1, 58)] # Calculating next food's coordinates
if food in snake: food = []
win.addch(food[0], food[1], '*')
else:
last = snake.pop() # [1] If it does not eat the food, length decreases
win.addch(last[0], last[1], ' ')
win.addch(snake[0][0], snake[0][1], '#')

curses.endwin()
print("\nScore - " + str(score))
print("http://bitemelater.in\n")

There is another snake game as well where the snake and the food is a square colored one.

Click on below button to install these games.
Download
Thank you,

You may also like...

Leave a Reply

avatar
  Subscribe  
Notify of