Skip to content

Instantly share code, notes, and snippets.

@Lysander
Created May 12, 2012 13:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lysander/2666545 to your computer and use it in GitHub Desktop.
Save Lysander/2666545 to your computer and use it in GitHub Desktop.
Extension for smas Adventure Tutorial
#!/usr/bin/env python
class Emitter:
column = 0
def __call__(self, s, width=80):
for word in str(s).split():
if word == "<p>":
self.column = 0
print()
continue
self.column += len(word) + 1
if self.column > width:
self.column = len(word) + 1
print()
print(word, end=" ")
@staticmethod
def p(s):
return "<p> {}".format(s)
@staticmethod
def h(s, char="-"):
return "<p> <p> {} <p> {}".format(s, char * len(s))
class Room:
def __init__(self, name, description):
self.name = name
self.description = description
self.exits = {}
vor_der_burg = Room("Vor der Burg",
"Vor dir ragt eine alte trutzige Burg auf, das Ziel deiner tagelangen "
"Reise durch die Wälder von Mordag. Im Norden führt eine herabgelassene "
"Zugbrücke zu einem düsteren Burghof. Es ist still hier. Sehr still.")
burghof = Room("Der Burghof",
"Die hohen Mauern lassen nur weg Licht der untergehenden Sonne hinein. "
"Der Hof ist unübersichtlich. Im Laufe der Jahrhunderte hat sich hier "
"viel Schutt und Müll angesammelt. Doch im Westen führt ein Tor in den "
"Burgfried. Alle anderen Zugänge scheinen verschüttet zu sein.")
burgfried = Room("Der Burgfried",
"Hier ist es richtig dunkel. Wie praktisch wäre jetzt ein Licht. Nach "
"einige Treppen kommt ein kleiner Raum, in dem es entsetzlich stinkt. "
"Wäre die restliche Treppe nicht eingestürzt, ginge es hier zum Dach.")
rooms = [vor_der_burg, burghof, burgfried]
def main():
emit = Emitter()
p, h = Emitter.p, Emitter.h
for room in rooms:
emit(h(room.name))
emit(p(room.description))
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment