Created
May 12, 2012 13:36
-
-
Save Lysander/2666545 to your computer and use it in GitHub Desktop.
Extension for smas Adventure Tutorial
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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