def baueAusgabe(Filename, Turnier): """ Die Eingabedatei und die Turnierergebnisse werden hier fuer die Ausgabe zusammengefuehrt. """ result = [] last = Turnier.result() # Die Turnierergebnisse first = [] for line in open(Filename, "r"): # Der Eingabedatei-Inhalt first.append(line) for line in first: line = line.replace("\n", " ") result = first + last return result
def main(): """ Dies ist der Controler fuer das Nim-Spiel. Der Controler bereitet alle notwendigen Daten fuer das Ausfuehren des Programms vor und interagiert mit dem OS um z.b. auf der Festplatte Daten zu lesen oder zu schreiben. Dann laesst er die Simulation ablaufen und schreibt die Ergebnisse in die Ausgabedatei """ try: # Zur Dokumentation der Testfälle wird diese LogConsole verwendet. # Alle Ausgaben auf die Console und in die Ausgabedatei # sollen auch hier geloggt werden. Log = LogConsole() Log.msgList(sys.argv) # Initialisierung der Simulation f = getFilename( ) # liest den Filename aus den argv (Programmstart-Parameter) F = FeldBuilder() Feld = F.getFeld(f) # versucht das Spielfeld zu bauen S1 = Spieler1("Spieler1") S2 = Spieler2("Spieler2") T = Turnier(S1, S2, Feld) # Initialisiert das Turnier T.start(10) # startet das Turnier (hier 10 Spiele) und wartet auf Ende # aller Spiele (laufen als Threads) O = OutputBuilder(f.replace(".in", ".out")) # Initialisiert die Ausgabedatei. # Falls diese bereits existiert, werden die Ergebnisse # angehangen. Die Endung in Filename wird vorab noch in # '.out' geaendert. lines = baueAusgabe(f, T) Log.msgList(lines) O.write(lines) # Schreibt Spielergebnisse in die Ausgabedatei # dieser Bereich verarbeitet ausgeloeste Exceptions im Programm. except UsrError as e: Log.msg(e.msg) Log.msg("rufe 'Controler.py help' auf um mehr zu erfahren.") Log.msg(" ") Log.msg("==================================================") Log.msg(" ") print(e.msg) print("rufe 'Controler.py help' auf um mehr zu erfahren.") return 1 # sys.exit(1) bedeutet, das die Excepion im Programm behandelt wurde, # also als Fehlerbehandlung programmiert wurde. except UsrNeedHelp as e: Log.msg(__doc__) Log.msg(" ") Log.msg("==================================================") Log.msg(" ") print(__doc__) return 0 # sys.exit(0) bedeutet, das Programm wurde ordnungsgemaess ausgefuehrt. except Exception as e: Log.msg(e) Log.msg(" ") Log.msg("==================================================") Log.msg(" ") print(e) return 2 # sys.exit(2) bedeutet, der Fehler wurde nicht behandelt und das Programm # wird unerwartet abgebrochen. else: Log.msg(" ") Log.msg("==================================================") Log.msg(" ") return 0
def main(): """ Dies ist der Controler fuer das Nim-Spiel. Der Controler bereitet alle notwendigen Daten fuer das Ausfuehren des Programms vor und interagiert mit dem OS um z.b. auf der Festplatte Daten zu lesen oder zu schreiben. Dann laesst er die Simulation ablaufen und schreibt die Ergebnisse in die Ausgabedatei """ try: # Zur Dokumentation der Testfälle wird diese LogConsole verwendet. # Alle Ausgaben auf die Console und in die Ausgabedatei # sollen auch hier geloggt werden. Log = LogConsole() Log.msgList(sys.argv) # Initialisierung der Simulation f = getFilename() # liest den Filename aus den argv (Programmstart-Parameter) F = FeldBuilder() Feld = F.getFeld(f) # versucht das Spielfeld zu bauen S1 = Spieler1("Spieler1") S2 = Spieler2("Spieler2") T = Turnier(S1,S2,Feld) # Initialisiert das Turnier T.start(10) # startet das Turnier (hier 10 Spiele) und wartet auf Ende # aller Spiele (laufen als Threads) O = OutputBuilder(f.replace(".in", ".out")) # Initialisiert die Ausgabedatei. # Falls diese bereits existiert, werden die Ergebnisse # angehangen. Die Endung in Filename wird vorab noch in # '.out' geaendert. lines = baueAusgabe(f,T) Log.msgList(lines) O.write(lines) # Schreibt Spielergebnisse in die Ausgabedatei # dieser Bereich verarbeitet ausgeloeste Exceptions im Programm. except UsrError as e: Log.msg(e.msg) Log.msg("rufe 'Controler.py help' auf um mehr zu erfahren.") Log.msg(" ") Log.msg("==================================================") Log.msg(" ") print(e.msg) print("rufe 'Controler.py help' auf um mehr zu erfahren.") return 1 # sys.exit(1) bedeutet, das die Excepion im Programm behandelt wurde, # also als Fehlerbehandlung programmiert wurde. except UsrNeedHelp as e: Log.msg(__doc__) Log.msg(" ") Log.msg("==================================================") Log.msg(" ") print(__doc__) return 0 # sys.exit(0) bedeutet, das Programm wurde ordnungsgemaess ausgefuehrt. except Exception as e: Log.msg(e) Log.msg(" ") Log.msg("==================================================") Log.msg(" ") print(e) return 2 # sys.exit(2) bedeutet, der Fehler wurde nicht behandelt und das Programm # wird unerwartet abgebrochen. else: Log.msg(" ") Log.msg("==================================================") Log.msg(" ") return 0
from Turnier import Turnier from Display import Display if __name__ == '__main__': t = Turnier() d = Display(t) d.run()