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)