public static void Main(string[] args) { UI ui = new UI(); Spiel spiel = new Spiel(); var schiedsrichter = new Schiedsrichter(); var ttt = new TicTacToe(spiel, schiedsrichter); var app = new App(ttt, ui); app.Run(); }
public void Akzeptanztest_für_1phasiges_Spiel() { var es = new InMemoryEventStore(); es.Record("Aufschlag gewonnen", "A", "ctx"); es.Record("Aufschlag gewonnen", "B", "ctx"); es.Record("Aufschlag gewonnen", "A", "ctx"); var sut = new Schiedsrichter("ctx", es); Assert.AreEqual("30:30", sut.Zählen(Schiedsrichter.Spieler.B)); Assert.AreEqual("40:30", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("Spieler A gewinnt!", sut.Zählen(Schiedsrichter.Spieler.A)); }
public void Spielende_mit_Gewinn_in_Diagonale() { var sut = new Schiedsrichter(); var spiel = new Spiel(); var result = Spielfortschritt.Läuft; spiel.Spielbrett[0, 0] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[1, 1] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[2, 2] = Spiel.Spielfeldzustände.O; sut.SpielstandBestimmen(spiel, fortschritt => result = fortschritt, _ => Assert.Fail()); Assert.AreEqual(result, Spielfortschritt.OGewinnt); }
public void Spiel_läuft_weiter_mit_Spielerwechsel() { var sut = new Schiedsrichter(); var spiel = new Spiel(); var result = new Spiel(); spiel.Spielbrett[0, 1] = Spiel.Spielfeldzustände.X; Assert.AreEqual(Spiel.Spieler.X, spiel.AktuellerSpieler); sut.SpielstandBestimmen(spiel, _ => Assert.Fail(), aktualisiertesSpiel => result = aktualisiertesSpiel); Assert.AreEqual(Spiel.Spieler.O, result.AktuellerSpieler); sut.SpielstandBestimmen(result, _ => Assert.Fail(), aktualisiertesSpiel => result = aktualisiertesSpiel); Assert.AreEqual(Spiel.Spieler.X, result.AktuellerSpieler); }
public void Spielende_durch_Unentschieden() { var sut = new Schiedsrichter(); var spiel = new Spiel(); var result = Spielfortschritt.Läuft; spiel.Spielbrett[0, 0] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[0, 1] = Spiel.Spielfeldzustände.X; spiel.Spielbrett[0, 2] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[1, 0] = Spiel.Spielfeldzustände.X; spiel.Spielbrett[1, 1] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[1, 2] = Spiel.Spielfeldzustände.X; spiel.Spielbrett[2, 0] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[2, 1] = Spiel.Spielfeldzustände.O; spiel.Spielbrett[2, 2] = Spiel.Spielfeldzustände.X; sut.SpielstandBestimmen(spiel, fortschritt => result = fortschritt, _ => Assert.Fail()); Assert.AreEqual(result, Spielfortschritt.Unentschieden); }
public void Akzeptanztest_für_2phasiges_Spiel() { const string EVENTSTORE_PATH = "kata.tennis.eventstore"; if (Directory.Exists(EVENTSTORE_PATH)) Directory.Delete(EVENTSTORE_PATH, true); var sut = new Schiedsrichter(new EventStore(EVENTSTORE_PATH)); Assert.AreEqual("15:0", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("30:0", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("30:15", sut.Zählen(Schiedsrichter.Spieler.B)); Assert.AreEqual("40:15", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("40:30", sut.Zählen(Schiedsrichter.Spieler.B)); Assert.AreEqual("Einstand!", sut.Zählen(Schiedsrichter.Spieler.B)); Assert.AreEqual("Vorteil A!", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("Einstand!", sut.Zählen(Schiedsrichter.Spieler.B)); Assert.AreEqual("Vorteil B!", sut.Zählen(Schiedsrichter.Spieler.B)); Assert.AreEqual("Einstand!", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("Vorteil A!", sut.Zählen(Schiedsrichter.Spieler.A)); Assert.AreEqual("Spieler A gewinnt!", sut.Zählen(Schiedsrichter.Spieler.A)); }
public TicTacToe(Spiel spiel, Schiedsrichter schiedsrichter) { _spiel = spiel; _schiedsrichter = schiedsrichter; }