Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
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
Esempio n. 4
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
Esempio n. 5
0
from Turnier import Turnier
from Display import Display

if __name__ == '__main__':
    t = Turnier()
    d = Display(t)
    d.run()