UJ Snake Using Python



Lets Dive Into The Code Directly:-

  1. Draw the screen area.
  2. Draw Snake And Food
  3. Give your favourite to all
  4. As you can see pygame lib is used for creating the design
  5. Random lib is for generating the area where the food would appear.
  6. If the snake touches the screen borders game ends there.
  7. If the snake touches himself game ends there.
  8. The Snake size would increase as he touches the food and the score gets updated by 1.
  9. The food disappears and appears in different location when snake touches the food.
  10. All Set!!!Play Now.
  11. Still doubtful you can get it from here:-https://github.com/joshiupendra1995/PythonWorld/blob/master/SnakeGame.py

import pygame
import random

pygame.init()

white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)

dis_width = 600
dis_height = 400

dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('UJ Snake')

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_list):
for x in snake_list:
pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])


def message(msg, color):
new_msg = font_style.render(msg, True, color)
dis.blit(new_msg, [dis_width / 6, dis_height / 3])


def game_loop():
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

food_x = round(random.randrange(30, dis_width - snake_block) / 10.0) * 10.0
food_y = round(random.randrange(30, dis_height - snake_block) / 10.0) * 10.0

while not game_over:

while game_close:
dis.fill(blue)
message("You Lost! Press C-Play Again or Q-Quit", 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:
game_loop()

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(blue)
pygame.draw.rect(dis, green, [food_x, food_y, snake_block, snake_block])
snake_head = [x1, 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_list)
your_score(length_of_snake - 1)

pygame.display.update()

if x1 == food_x and y1 == food_y:
food_x = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
food_y = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
length_of_snake += 1

clock.tick(snake_speed)

pygame.quit()
quit()


game_loop()

Comments

Popular posts from this blog

3 Lines of Code And You Can Download Your Favourite Youtube Video.

Leetcode Problem(Easy) Roman to Integer

Leetcode : (Find Minimum in Rotated Sorted Array)