public void TestGameAfterOneMove() { XOGame.XOGame _testGame = new XOGame.XOGame(); Random random = new Random(); int x = random.Next(0, 2), y = random.Next(0, 2); _testGame.MakeAMove(XOPlayer.X, x, y); XOPlayer expectedPlayer = XOPlayer.X; XOPlayer actualPlayer = _testGame.GetValueInSpot(x, y); Assert.AreEqual<XOPlayer>(expectedPlayer, actualPlayer, String.Format("The player in ({0},{1}) was '{2}'. It should have been '{3}'.",x,y,actualPlayer,expectedPlayer)); XOPlayer expectedWinner = XOPlayer.NotSet; XOPlayer actualWinner = _testGame.GetWinner(); Assert.AreEqual<XOPlayer>(expectedWinner, actualWinner, String.Format("The winner is supposed to be 'NotSet'. The winner was '{0}'.", actualWinner)); }
static void Main(string[] args) { XOGame.XOGame game = new XOGame.XOGame(); XOPlayer turn = XOPlayer.X; int row, column; Console.WriteLine("X goes first."); while (!game.IsGameOver) { PrintBoard(game); Console.WriteLine(); Console.WriteLine("Current Player: " + turn.ToString()); Console.Write("Row:"); var key = Console.ReadLine(); row = int.Parse(key); Console.Write("Column:"); key = Console.ReadLine(); column = int.Parse(key); game.MakeAMove(turn, row, column); int tturn = (int)turn; tturn = tturn * -1; turn = (XOPlayer)tturn; Console.Clear(); } switch (game.GetWinner()) { case XOPlayer.X: Console.WriteLine("X is the winner!"); break; case XOPlayer.O: Console.WriteLine("O is the winner!"); break; case XOPlayer.NotSet: Console.WriteLine("It's a draw!"); break; default: break; } PrintBoard(game); Console.WriteLine("Press any key to exit..."); Console.Read(); }
public void TestGameAfterNoMoves() { //Testing GetWinner XOGame.XOGame _testGame = new XOGame.XOGame(); XOPlayer expectedWinner = XOPlayer.NotSet; XOPlayer actualWinner = _testGame.GetWinner(); Assert.AreEqual<XOPlayer>(expectedWinner,actualWinner, String.Format("The winner is supposed to be 'NotSet'. The winner was '{0}'.",actualWinner)); //Testing GetValueInSpot Random random = new Random(); XOPlayer expectedValue = XOPlayer.NotSet; int x = random.Next(0, 2), y = random.Next(0, 2); XOPlayer actualValue = _testGame.GetValueInSpot(x, y); Assert.AreEqual<XOPlayer>(expectedValue, actualValue, String.Format("The winner in ({0},{1}) was {2}. Expected 'NotSet'.", x, y, actualValue)); //Testing game over bool expectedResult = false; bool actualResult = _testGame.IsGameOver; Assert.AreEqual<bool>(expectedResult, actualResult, "The game can't be over after no moves"); }
public void TestWholeGameToDraw() { XOGame.XOGame _testGame = new XOGame.XOGame(); _testGame.MakeAMove(XOPlayer.X, 0, 0); _testGame.MakeAMove(XOPlayer.O, 1, 1); _testGame.MakeAMove(XOPlayer.X, 1, 0); _testGame.MakeAMove(XOPlayer.O, 2, 0); _testGame.MakeAMove(XOPlayer.X, 0, 2); _testGame.MakeAMove(XOPlayer.O, 0, 1); _testGame.MakeAMove(XOPlayer.X, 2, 1); _testGame.MakeAMove(XOPlayer.O, 1, 2); _testGame.MakeAMove(XOPlayer.X, 2, 2); bool expectedGameOver = true; bool actualGameOver = _testGame.IsGameOver; Assert.AreEqual<bool>(expectedGameOver, actualGameOver, "The game was supposed to be over by now"); XOPlayer expectedWinner = XOPlayer.NotSet; XOPlayer actualWinner = _testGame.GetWinner(); Assert.AreEqual<XOPlayer>(expectedWinner, actualWinner, "The game was supposed to be a draw, instead '" + actualWinner.ToString() + "' was the winner."); Assert.AreEqual<int>(0, _testGame.WinningSolution.Count, "The solution should be empty."); }
public void TestWholeGameToOWin() { XOGame.XOGame _testGame = new XOGame.XOGame(); _testGame.MakeAMove(XOPlayer.X, 0, 0); _testGame.MakeAMove(XOPlayer.O, 1, 1); _testGame.MakeAMove(XOPlayer.X, 2, 1); _testGame.MakeAMove(XOPlayer.O, 2, 0); _testGame.MakeAMove(XOPlayer.X, 1, 2); _testGame.MakeAMove(XOPlayer.O, 0, 2); bool expectedGameOver = true; bool actualGameOver = _testGame.IsGameOver; Assert.AreEqual<bool>(expectedGameOver, actualGameOver, "The game was supposed to be over by now"); XOPlayer expectedWinner = XOPlayer.O; XOPlayer actualWinner = _testGame.GetWinner(); Assert.AreEqual<XOPlayer>(expectedWinner, actualWinner, "The winner was supposed to be 'O', instead '" + actualWinner.ToString() + "' was the winner."); _testGame.MakeAMove(XOPlayer.X, 2, 2); }