Skip to content

improving snake.py #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 169 additions & 1 deletion snake.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,174 @@ def main():
redrawWindow()

main()

#you can also try this game
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("your background snake game image.jpg")
bgimg = pygame.transform.scale(bgimg, (screen_width, screen_height)).convert_alpha()


# Game Title
pygame.display.set_caption("your game name")
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((213,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('you music play.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)<15 and abs(snake_y - food_y)<15:
score +=10
food_x = random.randint(20, screen_width / 2)
food_y = random.randint(20, screen_height / 2)
snk_length +=5
if score>int(hiscore):
hiscore = score

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('you music play.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('you music play.mp3')
pygame.mixer.music.play()
plot_snake(gameWindow, black, snk_list, snake_size)
pygame.display.update()
clock.tick(fps)

pygame.quit()
quit()
welcome()