Esempio n. 1
0
        public void TestTwoOfTheSamePlayerInARow()
        {
            XOGame.XOGame _testGame = new XOGame.XOGame();

            _testGame.MakeAMove(XOPlayer.X, 0, 0);
            _testGame.MakeAMove(XOPlayer.X, 0, 1);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 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();
 }
Esempio n. 4
0
        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");
        }
Esempio n. 5
0
        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.");
        }
Esempio n. 6
0
        static void PrintBoard(XOGame.XOGame game)
        {
            Console.WriteLine();
            for (int i = 0; i < 3; i++)
            {
                Console.Write(" ");
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" ");
                    switch (game.GetValueInSpot(i,j))
                    {
                        case XOPlayer.X:
                            Console.Write("X");
                            break;
                        case XOPlayer.O:
                            Console.Write("O");
                            break;
                        case XOPlayer.NotSet:
                            Console.Write(" ");
                            break;
                        default:
                            break;
                    }
                    Console.Write(" ");
                    if (j < 2)
                    {

                        Console.Write("|");
                    }
                }
                Console.WriteLine();
                if (i < 2)
                {
                    Console.WriteLine(" -----------");
                }
            }
        }
Esempio n. 7
0
        public void TestInvalidMove()
        {
            XOGame.XOGame _testGame = new XOGame.XOGame();

            _testGame.MakeAMove(XOPlayer.X, 0, 3);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 public XoGameGui(Form WinForm)
 {
     this.WinForm = WinForm;
     this.Buttons = new Button[3, 3];
     this.Game    = new XOGame();
 }