import pygame
import random
import os
pygame.mixer.init()
pygame.init()
# Colors
white = (255, 255, 255)
red = (255, 0, 0)
black = (0, 0, 0)
# Creating window
screen_width = 900
screen_height = 600
gameWindow = pygame.display.set_mode((screen_width, screen_height))
#Background Image
bgimg = pygame.image.load("sanke.jpg")
bgimg = pygame.transform.scale(bgimg, (screen_width, screen_height)).convert_alpha()
# Game Title
pygame.display.set_caption("Snake Game by goeduhub")
pygame.display.update()
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 55)
def text_screen(text, color, x, y):
screen_text = font.render(text, True, color)
gameWindow.blit(screen_text, [x,y])
def plot_snake(gameWindow, color, snk_list, snake_size):
for x,y in snk_list:
pygame.draw.rect(gameWindow, color, [x, y, snake_size, snake_size])
def welcome():
exit_game = False
while not exit_game:
gameWindow.fill((233,210,229))
text_screen("Welcome to Snakes", black, 260, 250)
text_screen("Press Space Bar To Play", black, 232, 290)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
pygame.mixer.music.load('qqq.mp3')
pygame.mixer.music.play()
gameloop()
pygame.display.update()
clock.tick(60)
# Game Loop
def gameloop():
# Game specific variables
exit_game = False
game_over = False
snake_x = 45
snake_y = 55
velocity_x = 0
velocity_y = 0
snk_list = []
snk_length = 1
# Check if hiscore file exists
if(not os.path.exists("hiscore.txt")):
with open("hiscore.txt", "w") as f:
f.write("0")
with open("hiscore.txt", "r") as f:
hiscore = f.read()
food_x = random.randint(20, screen_width / 2)
food_y = random.randint(20, screen_height / 2)
score = 0
init_velocity = 5
snake_size = 30
fps = 60
while not exit_game:
if game_over:
with open("hiscore.txt", "w") as f:
f.write(str(hiscore))
gameWindow.fill(white)
text_screen("Game Over! Press Enter To Continue", red, 100, 250)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
welcome()
else:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
velocity_x = init_velocity
velocity_y = 0
if event.key == pygame.K_LEFT:
velocity_x = - init_velocity
velocity_y = 0
if event.key == pygame.K_UP:
velocity_y = - init_velocity
velocity_x = 0
if event.key == pygame.K_DOWN:
velocity_y = init_velocity
velocity_x = 0
if event.key == pygame.K_q:
score +=10
snake_x = snake_x + velocity_x
snake_y = snake_y + velocity_y
if abs(snake_x - food_x)<20 and abs(snake_y - food_y)<20:
score +=10
food_x = random.randint(20, screen_width / 2)
food_y = random.randint(20, screen_height / 2)
snk_length +=5
gameWindow.fill(white)
gameWindow.blit(bgimg, (0, 0))
text_screen("Score: " + str(score) + " Hiscore: "+str(hiscore), red, 5, 5)
pygame.draw.rect(gameWindow, red, [food_x, food_y, snake_size, snake_size])
head = []
head.append(snake_x)
head.append(snake_y)
snk_list.append(head)
if len(snk_list)>snk_length:
del snk_list[0]
if head in snk_list[:-1]:
game_over = True
pygame.mixer.music.load('qqq.mp3')
pygame.mixer.music.play()
if snake_x<0 or snake_x>screen_width or snake_y<0 or snake_y>screen_height:
game_over = True
pygame.mixer.music.load('qqq.mp3')
pygame.mixer.music.play()
plot_snake(gameWindow, black, snk_list, snake_size)
pygame.display.update()
clock.tick(fps)
pygame.quit()
quit()
welcome()
|