-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsnake.py
More file actions
139 lines (117 loc) · 4.6 KB
/
snake.py
File metadata and controls
139 lines (117 loc) · 4.6 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
131
132
133
134
135
136
137
138
139
from operator import truediv
from unittest import runner
from snake_settings import *
from snake_player_object import *
from dual_snake_player_object import *
import snake_menus
from snake_save_and_ranking import *
from algo import *
pygame.init()
pygame.display.set_caption('Snake - Open Source SW')
def draw_dual_background():
tmp = 10
for x in range(dual_player_grid_width):
for y in range(dual_player_grid_height):
pygame.draw.rect(screen, (0, 100 + tmp, 0), pygame.Rect(x * grid_cell_size, y * grid_cell_size, grid_cell_size, grid_cell_size))
tmp *= -1
tmp *= -1
def draw_background():
tmp = 10
for x in range(single_player_grid_width):
for y in range(single_player_grid_height):
pygame.draw.rect(screen, (0, 100 + tmp, 0), pygame.Rect(x * grid_cell_size, y * grid_cell_size, grid_cell_size, grid_cell_size))
tmp *= -1
tmp *= -1
def dualPlay(resume=False):
ranking = Ranking()
save_and_load = Save_and_Load()
menu = snake_menus.Menu(save_and_load, ranking)
if resume is False:
menu.main_menu_loop()
screen = pygame.display.set_mode([1600, 800])
screen.fill((240, 230, 140))
dualSnake = DualSnake()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
running = dualSnake.set_direction(1, DIR_UP)
elif event.key == pygame.K_DOWN:
running = dualSnake.set_direction(1, DIR_DOWN)
elif event.key == pygame.K_LEFT:
running = dualSnake.set_direction(1, DIR_LEFT)
elif event.key == pygame.K_RIGHT:
running = dualSnake.set_direction(1, DIR_RIGHT)
if event.key == pygame.K_w:
running = dualSnake.set_direction(2, DIR_UP)
elif event.key == pygame.K_s:
running = dualSnake.set_direction(2, DIR_DOWN)
elif event.key == pygame.K_a:
running = dualSnake.set_direction(2, DIR_LEFT)
elif event.key == pygame.K_d:
running = dualSnake.set_direction(2, DIR_RIGHT)
elif event.key == pygame.K_ESCAPE:
menu.special_mode_menu_loop("dual")
if (not running):
break
draw_dual_background()
running = dualSnake.move()
if running == 0:
if dualSnake.winning_snake == 1:
menu.display_score("blue player " + dualSnake.winning_snake.__str__() + " won the game")
elif dualSnake.winning_snake == 2:
menu.display_score("yellow player " + dualSnake.winning_snake.__str__() + " won the game")
dualSnake.food_check()
dualSnake.display()
pygame.display.flip()
fpsClock.tick(FPS)
pygame.quit()
sys.exit()
def play(resume=False):
screen = pygame.display.set_mode([800, 800])
ranking = Ranking()
save_and_load = Save_and_Load()
menu = snake_menus.Menu(save_and_load, ranking)
if resume is False:
menu.main_menu_loop()
screen.fill((240, 230, 140))
if menu.loaded is True:
try:
snake = save_and_load.get_load_info()
except FileNotFoundError:
snake = Snake()
else:
snake = Snake()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP or event.key == pygame.K_w:
running = snake.set_direction(DIR_UP)
elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
running = snake.set_direction(DIR_DOWN)
elif event.key == pygame.K_LEFT or event.key == pygame.K_a:
running = snake.set_direction(DIR_LEFT)
elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
running = snake.set_direction(DIR_RIGHT)
elif event.key == pygame.K_ESCAPE:
menu.ingame_menu_loop(snake)
if (not running):
break
draw_background()
running = snake.move()
if running == 0:
menu.get_username(ranking, snake)
snake.food_check()
snake.display()
pygame.display.flip()
fpsClock.tick(FPS)
pygame.quit()
sys.exit()
if __name__ == "__main__":
play()