ex.43 classes
This commit is contained in:
parent
366d216035
commit
53232c9869
2 changed files with 181 additions and 0 deletions
115
sami/learn-python-the-hard-way/ex43.py
Normal file
115
sami/learn-python-the-hard-way/ex43.py
Normal file
|
@ -0,0 +1,115 @@
|
|||
class Scene(object):
|
||||
|
||||
def enter(self):
|
||||
print("This scene is not yet configured.")
|
||||
print("Subclass it and implement enter().")
|
||||
exit(1)
|
||||
|
||||
|
||||
|
||||
class Engine(object):
|
||||
def __init__(self, scene_map):
|
||||
self.scene_map = scene_map
|
||||
|
||||
|
||||
def play(self):
|
||||
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_scene = self.scene_map.next_scene(next_scene_name)
|
||||
|
||||
# be sure to print out the last scene
|
||||
current_scene.enter()
|
||||
|
||||
|
||||
class Death(Scene):
|
||||
|
||||
|
||||
quips = [
|
||||
"You died.
|
||||
You kinda suck at this.",
|
||||
"Your Mom would be proud...if she were smarter.",
|
||||
"Such a luser.",
|
||||
"I have a small puppy that's better at this.",
|
||||
"You're worse than your Dad's jokes."
|
||||
|
||||
|
||||
]
|
||||
|
||||
|
||||
def enter(self):
|
||||
print(Death.quips[randint(0, len(self.quips)-1)])
|
||||
exit(1)
|
||||
|
||||
class CentralCorridor(Scene):
|
||||
|
||||
def enter(self):
|
||||
print(dedent("""
|
||||
The Gothons of Planet Percal #25 have invaded your ship and
|
||||
destroyed your entire crew.
|
||||
member and your last mission is to get the neutron destruct
|
||||
bomb from the Weapons Armory, put it in the bridge, and
|
||||
blow the ship up after getting into an escape pod.
|
||||
You are the last surviving
|
||||
|
||||
You're running down the central corridor to the Weapons
|
||||
Armory when a Gothon jumps out, red scaly skin, dark grimy
|
||||
teeth, and evil clown costume flowing around his hate
|
||||
filled body. He's blocking the door to the Armory and about to pull a weapon to blast you.
|
||||
"""))
|
||||
|
||||
action = input("> ")
|
||||
|
||||
|
||||
|
||||
if action == "shoot!":
|
||||
print(dedent("""
|
||||
Quick on the draw you yank out your blaster and fire
|
||||
it at the Gothon.
|
||||
moving around his body, which throws off your aim.
|
||||
Your laser hits his costume but misses him entirely.
|
||||
This completely ruins his brand new costume his mother
|
||||
bought him, which makes him fly into an insane rage
|
||||
and blast you repeatedly in the face until you are
|
||||
dead.
|
||||
"""))
|
||||
|
||||
|
||||
return 'death'
|
||||
|
||||
elif action == "dodge!":
|
||||
print(dedent("""
|
||||
|
||||
Like a world class boxer you dodge, weave, slip and
|
||||
slide right as the Gothon's blaster cranks a laser
|
||||
past your head.
|
||||
your foot slips and you bang your head on the metal
|
||||
wall and pass out.
|
||||
die as the Gothon stomps on your head and eats you.
|
||||
You wake up shortly after only to
|
||||
"""))
|
||||
|
||||
return 'death'
|
||||
|
||||
|
||||
|
||||
elif action == "tell a joke":
|
||||
print(dedent("""
|
||||
Lucky for you they made you learn Gothon insults in
|
||||
the academy.
|
||||
Lbhe zbgure vf fb sng, jura fur fvgf nebhaq gur ubhfr,
|
||||
fur fvgf nebhaq gur ubhfr.
|
||||
not to laugh, then busts out laughing and can't move.
|
||||
While he's laughing you run up and shoot him square in
|
||||
the head putting him down, then jump through the
|
||||
Weapon Armory door.
|
||||
"""))
|
||||
|
||||
return 'laser_weapon_armory'
|
||||
|
||||
|
||||
else:
|
||||
print("DOES NOT COMPUTE!")
|
||||
return 'central_corridor'
|
66
sami/learn-python-the-hard-way/ex43_classes.py
Normal file
66
sami/learn-python-the-hard-way/ex43_classes.py
Normal file
|
@ -0,0 +1,66 @@
|
|||
|
||||
class Scene(object):
|
||||
|
||||
def enter(self):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class Engine(object):
|
||||
|
||||
def __init__(self, scene_map):
|
||||
pass
|
||||
|
||||
def play(self):
|
||||
pass
|
||||
|
||||
|
||||
class Death(Scene):
|
||||
|
||||
def enter(self):
|
||||
pass
|
||||
|
||||
|
||||
class CentralCorridor(Scene):
|
||||
|
||||
def enter(self):
|
||||
pass
|
||||
|
||||
|
||||
class LaserWeaponArmory(Scene):
|
||||
|
||||
def enter(self):
|
||||
pass
|
||||
|
||||
|
||||
class TheBridge(Scene):
|
||||
|
||||
def enter(self):
|
||||
pass
|
||||
|
||||
|
||||
class EscapePod(Scene):
|
||||
|
||||
def enter(self)
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class Map(object):
|
||||
|
||||
|
||||
|
||||
def __init__(self, start_scene):
|
||||
pass
|
||||
|
||||
|
||||
def next_scene(self, scene_name):
|
||||
pass
|
||||
|
||||
def opening_scene(self):
|
||||
pass
|
||||
|
||||
|
||||
a_map = Map('central_corridor')
|
||||
a_game = Engine(a_map)
|
||||
a_game.play()
|
Loading…
Reference in a new issue