-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgame_engine.py
More file actions
63 lines (51 loc) · 1.52 KB
/
game_engine.py
File metadata and controls
63 lines (51 loc) · 1.52 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
class GameMode:
def __init__(self):
self.score = 0
self.lives = 0
self.game_over = False
self.name = "Base"
def on_slice(self, fruit_obj):
self.score += 1
return 1 # Points
def on_bomb(self):
pass
def on_miss(self):
pass
def get_status(self):
return f"Score: {self.score} Lives: {self.lives}"
class ClassicMode(GameMode):
def __init__(self):
super().__init__()
self.lives = 3
self.name = "Classic"
def on_slice(self, fruit_obj):
# Bonus for criticals? Simple +1 for now
self.score += 1
return 1
def on_bomb(self):
# Classic: Bomb = -1 Life (or Game Over in arcade, but user said -1 life)
# Re-reading prompt: "Classic Mode: ... Bombs reduce lives"
self.lives -= 1
if self.lives <= 0:
self.game_over = True
def on_miss(self):
# Missed fruit = -1 life
self.lives -= 1
if self.lives <= 0:
self.game_over = True
class SurvivalMode(GameMode):
def __init__(self):
super().__init__()
self.lives = 1
self.name = "Survival"
def on_slice(self, fruit_obj):
self.score += 1
return 1
def on_bomb(self):
# Instant death
self.lives = 0
self.game_over = True
def on_miss(self):
# Instant death
self.lives = 0
self.game_over = True