Skip to content

Commit

Permalink
Erlaubt Eingabe und Verarbeitung eines Kommandos
Browse files Browse the repository at this point in the history
Lösung zu Tagesaufgabe 5 (Issue #7)
  • Loading branch information
suchja committed Jul 3, 2016
1 parent 0450509 commit 94880c2
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
66 changes: 64 additions & 2 deletions TicTacToe/Program.cs
Expand Up @@ -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");
}

/// <summary>
/// Ü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.
/// </summary>
/// <param name="kommando"></param>
/// <returns></returns>
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);
}
}
}
7 changes: 7 additions & 0 deletions TicTacToe/Spiel.cs
Expand Up @@ -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)
Expand Down

0 comments on commit 94880c2

Please sign in to comment.