-
Notifications
You must be signed in to change notification settings - Fork 0
/
ex43.py
123 lines (83 loc) · 2.51 KB
/
ex43.py
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
# import io from sys
class Engine(object):
def __init__(self, scene_map):
self.scene_map = scene_map
def play(self):
print "Game started"
current_scene = self.scene_map.opening_scene()
last_scene = self.scene_map.next_scene('finished')
while current_scene != last_scene:
next_scene_name = current_scene.enter()
current_scnee = self.scene_map.next_scene(next_scene_name)
current_scnee.enter()
class Scene(object):
def enter(self):
pass
class Death(Scene):
def enter(self):
print "You've enterted Death scene, you died."
class CentralCorridor(Scene):
def enter(self):
print "You've enterted the Central Corridor scene"
print "1 pass 2 die"
action = raw_input("> ")
if action == "1":
pass
elif action == "2":
pass
else:
print "please enter again"
return 'central_corridor'
class LaserWeaponArmory(Scene):
def enter(self):
print "You've enterted the Laser Weapon Armory scene"
print "1 pass 2 die"
action = raw_input("> ")
if action == "1":
pass
elif action == "2":
pass
else:
print "please enter again"
return 'laser_weapon_armory'
class TheBridge(Scene):
def enter(self):
print "You've enterted The Bridge scene"
print "1 pass 2 die"
action = raw_input("> ")
if action == "1":
pass
elif action == "2":
pass
else:
print "please enter again"
return 'the_bridge'
class EscapePod(Scene):
def enter(self):
print "You've enterted Escape Pod scene"
print "1 pass 2 die"
action = raw_input("> ")
if action == "1":
pass
elif action == "2":
pass
else:
print "please enter again"
return 'escape_pod'
class Map(object):
scenes = {
'central_corridor': CentralCorridor(),
'laser_weapon_armory': LaserWeaponArmory(),
'the_bridge': TheBridge(),
'escape_pod': EscapePod(),
'death': Death()
}
def __init__(self, start_scene):
self.start_scene = start_scene
def next_scene(self, scene_name):
return self.scenes.get(scene_name)
def opening_scene(self):
return self.next_scene(self.start_scene)
a_map = Map('central_corridor')
a_game = Engine(a_map)
a_game.play()