diff --git a/TicTacToe/Program.cs b/TicTacToe/Program.cs
index 80bc8fd..5b32b68 100644
--- a/TicTacToe/Program.cs
+++ b/TicTacToe/Program.cs
@@ -22,10 +22,72 @@ static void Main(string[] args)
if (kommando.ToLower() == "neu")
{
Spiel aktuellesSpiel = new Spiel();
- aktuellesSpiel.SpielzugAusfuehren('A', 1);
- aktuellesSpiel.SpielzugAusfuehren('B', 1);
+
+ while (!aktuellesSpiel.IstBeendet())
+ {
+ Console.WriteLine("Spieler {0} - Wo willst du deinen Spielstein setzen? ", aktuellesSpiel.AktuellerSpieler);
+ kommando = Console.ReadLine();
+ if (IstSpielzug(kommando))
+ {
+ aktuellesSpiel.SpielzugAusfuehren(ExtrahiereSpalte(kommando), ExtrahiereZeile(kommando));
+ }
+ else if (IstAbbruchKommando(kommando))
+ {
+ Environment.Exit(0);
+ }
+ }
}
}
}
+
+ static bool IstNeustartKommando(string kommando)
+ {
+ return (kommando.ToLower() == "neu");
+ }
+
+ static bool IstAbbruchKommando(string kommando)
+ {
+ return (kommando.ToLower() == "ende");
+ }
+
+ ///
+ /// Überprüft ob es sich bei dem angegebenen Kommando um einen Spielzug handelt.
+ /// Das ist der Fall, wenn das Kommando aus einem Buchstaben (an erster Stelle)
+ /// und einer Zahl (an zweiter Stelle) besteht.
+ ///
+ ///
+ ///
+ static bool IstSpielzug(string kommando)
+ {
+ if (kommando.Length != 2)
+ {
+ return false;
+ }
+
+ char spalte = ExtrahiereSpalte(kommando);
+ if (!Char.IsLetter(spalte))
+ {
+ return false;
+ }
+
+ // wenn die Zeile keine Zahl ist, wird die Konvertierung nicht klappen!
+ int zeile = ExtrahiereZeile(kommando);
+
+ return true;
+ }
+
+ static int ExtrahiereZeile(string koordinate)
+ {
+ string zeile = koordinate.Substring(1, 1);
+
+ return int.Parse(zeile);
+ }
+
+ static char ExtrahiereSpalte(string koordinate)
+ {
+ string spalte = koordinate.Substring(0, 1);
+
+ return char.Parse(spalte);
+ }
}
}
diff --git a/TicTacToe/Spiel.cs b/TicTacToe/Spiel.cs
index c73c822..c6b1803 100644
--- a/TicTacToe/Spiel.cs
+++ b/TicTacToe/Spiel.cs
@@ -36,6 +36,13 @@ public void SpielzugAusfuehren(char spalte, int zeile)
SpielerWechseln();
}
+ public bool IstBeendet()
+ {
+ // TODO: Gewinner ermitteln
+ // TODO: Unentschieden ermitteln
+ return false;
+ }
+
private void SpielerWechseln()
{
if (istSpieler1AmZug == true)