Rogue
Verfasst: Samstag 12. Januar 2008, 20:59
Als Wochenendprojekt habe ich eine C-Version von Rogue, einem, nein dem ersten, Computerrollenspiel in Python portiert.
Hier seht ihr unseren tapferen Helden "@", wie er auf der Suche nach dem Amulet von Yendor unmittelbar davor steht, den ersten Level des Dungeon über die Treppe "%" zu verlassen und den zweiten Level zu betreten:
Falls jemand an dem Quelltext interessiert ist, packe ich ihn gerne auf Google Code oder so. Ich möchte mich jedoch gleich von der Form distanzieren. Ich habe versucht, den (antiken) C-Code 1:1 in Python zu übertragen, andere Python-Programme würde ich so sicherlich nicht schreiben Aus 6282 Zeilen C sind so 4065 Zeilen Python geworden (keine Blockenden zu haben, macht es kürzer). Ich habe bislang ungefähr 15 Stunden für die Portierung gebraucht. Den Quelltext übersetzen war eins - dann aber meine Flüchtigkeitsfehler finden, hat echt Zeit gekostet und da sind bestimmt immer noch welche.
Ich nutze curses, damit funktioniert das wahrscheinlich nur auf dem Mac und unter Linux. Im Prinzip muss man aber nur ein Zeichen an einer bestimmten Bildschirmposition ausgeben können und einzelne Zeichen über die Tastatur einlesen können, ohne dass man etwas sieht oder RETURN drücken muss.
Da man hier ja Python-Code zeigen soll, hier noch die Hauptschleife
Stefan
Hier seht ihr unseren tapferen Helden "@", wie er auf der Suche nach dem Amulet von Yendor unmittelbar davor steht, den ersten Level des Dungeon über die Treppe "%" zu verlassen und den zweiten Level zu betreten:
Falls jemand an dem Quelltext interessiert ist, packe ich ihn gerne auf Google Code oder so. Ich möchte mich jedoch gleich von der Form distanzieren. Ich habe versucht, den (antiken) C-Code 1:1 in Python zu übertragen, andere Python-Programme würde ich so sicherlich nicht schreiben Aus 6282 Zeilen C sind so 4065 Zeilen Python geworden (keine Blockenden zu haben, macht es kürzer). Ich habe bislang ungefähr 15 Stunden für die Portierung gebraucht. Den Quelltext übersetzen war eins - dann aber meine Flüchtigkeitsfehler finden, hat echt Zeit gekostet und da sind bestimmt immer noch welche.
Ich nutze curses, damit funktioniert das wahrscheinlich nur auf dem Mac und unter Linux. Im Prinzip muss man aber nur ein Zeichen an einer bestimmten Bildschirmposition ausgeben können und einzelne Zeichen über die Tastatur einlesen können, ohne dass man etwas sieht oder RETURN drücken muss.
Da man hier ja Python-Code zeigen soll, hier noch die Hauptschleife
Code: Alles auswählen
def main():
init()
while True:
clear_level()
make_level()
put_objects()
put_stairs()
put_monsters()
put_player()
light_up_room()
print_stats()
play_level()
g.level_objects.next_object = None
g.level_monsters.next_object = None
clear()