-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsnack.py
More file actions
130 lines (99 loc) · 3.5 KB
/
snack.py
File metadata and controls
130 lines (99 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import pygame
import random
import time
# Initialize Pygame
pygame.init()
# Set up the game window
width = 800
height = 600
window = pygame.display.set_mode((width, height))
pygame.display.set_caption("Beautiful Snake Game")
# Colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
# Snake and food
snake_block = 20
snake_speed = 15
# Initialize clock
clock = pygame.time.Clock()
# Font
font = pygame.font.SysFont("bahnschrift", 25)
def our_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(window, GREEN, [x[0], x[1], snake_block, snake_block])
def message(msg, color):
mesg = font.render(msg, True, color)
window.blit(mesg, [width / 6, height / 3])
def gameLoop():
game_over = False
game_close = False
x1 = width / 2
y1 = height / 2
x1_change = 0
y1_change = 0
snake_List = []
Length_of_snake = 1
foodx = round(random.randrange(0, width - snake_block) / 20.0) * 20.0
foody = round(random.randrange(0, height - snake_block) / 20.0) * 20.0
while not game_over:
while game_close == True:
window.fill(BLACK)
message("You Lost! Press Q-Quit or C-Play Again", RED)
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:
gameLoop()
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 >= width or x1 < 0 or y1 >= height or y1 < 0:
game_close = True
x1 += x1_change
y1 += y1_change
window.fill(BLACK)
# Draw food with a glowing effect
pygame.draw.circle(window, RED, (int(foodx + snake_block/2), int(foody + snake_block/2)), int(snake_block/2))
pygame.draw.circle(window, (255, 150, 150), (int(foodx + snake_block/2), int(foody + snake_block/2)), int(snake_block/3))
snake_Head = []
snake_Head.append(x1)
snake_Head.append(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_block, snake_List)
# Display score
score = font.render("Score: " + str(Length_of_snake - 1), True, WHITE)
window.blit(score, [0, 0])
pygame.display.update()
if x1 == foodx and y1 == foody:
foodx = round(random.randrange(0, width - snake_block) / 20.0) * 20.0
foody = round(random.randrange(0, height - snake_block) / 20.0) * 20.0
Length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
# Start the game
gameLoop()