예제 #1
0
 public void SetupTest()
 {
     _gameWinnerService = new GameWinnerService();
     _gameBoard         = new char[3, 3] {
         { ' ', ' ', ' ' }, { ' ', ' ', ' ' }, { ' ', ' ', ' ' }
     };
 }
 public void SetupUnitTests()
 {
     _gameWinnerService = new GameWinnerService();
     _gameboard         = new char[3, 3] {
         { ' ', ' ', ' ' },
         { ' ', ' ', ' ' },
         { ' ', ' ', ' ' }
     };
 }
예제 #3
0
 public void SetupTests()
 {
     _gameWinnerService = new GameWinnerService();
     _gameBoard = new char[3, 3] {
         {' ',' ',' '},
         {' ',' ',' '},
         {' ',' ',' '}
     };
 }
        public void Validate_NeitherPlayerHasThreeInARow_ReturnsEmptyChar()
        {
            gameWinnerService = makeGameWinnerService();
            gameBoard         = makeGameBoard();

            const char expected = ' ';
            var        actual   = gameWinnerService.Validate(gameBoard);

            Assert.AreEqual(expected, actual);
        }
        public void Validate_PlayerWithThreeInArowDiagonallyDownAndToRightIsWInner_ReturnsCharX()
        {
            gameWinnerService = makeGameWinnerService();
            gameBoard         = makeGameBoard();

            const char expected = 'X';

            for (var cellIndex = 0; cellIndex < 3; cellIndex++)
            {
                gameBoard[cellIndex, cellIndex] = expected;
            }
            var actual = gameWinnerService.Validate(gameBoard);

            Assert.AreEqual(expected.ToString(), actual.ToString());
        }
        public void Validate_PlayerWithAllSpacesInFirstColumnIWinner_ReturnsCharX()
        {
            gameWinnerService = makeGameWinnerService();
            gameBoard         = makeGameBoard();

            const char expected = 'X';

            for (var columnIndex = 0; columnIndex < 3; columnIndex++)
            {
                gameBoard[columnIndex, 0] = expected;
            }
            var actual = gameWinnerService.Validate(gameBoard);

            Assert.AreEqual(expected.ToString(), actual.ToString());
        }
        public void Validate_PlayerWithAllSpacesInTopRowIsWinner_ReturnsCharX()
        {
            gameWinnerService = makeGameWinnerService();
            gameBoard         = makeGameBoard();

            const char expected = 'X';

            for (var rowIndex = 0; rowIndex < 3; rowIndex++)
            {
                gameBoard[0, rowIndex] = expected;
            }
            var actual = gameWinnerService.Validate(gameBoard);

            Assert.AreEqual(expected.ToString(), actual.ToString());
        }
예제 #8
0
        public void Play()
        {
            Console.WriteLine("Indtast spiller navn");
            player = Console.ReadLine();
            do
            {
                Print();
                do
                {
                    _game = new GameWinnerService();
                    // User Turn

                    do
                    {
                        Console.WriteLine("Det er " + player + "s tur");
                        Console.Write(player + " indsæt lodret række ");
                        pos1 = Console.ReadLine();

                        do
                        {
                            if (int.TryParse(pos1, out p1r))
                            {
                                while (p1r < 0 || p1r > 2)
                                {
                                    Console.WriteLine("Du skal indtaste et tal mellem (0 - 2) for din lodrette række");
                                    pos1 = Console.ReadLine();
                                    if (int.TryParse(pos1, out p1r))
                                    {
                                    }
                                }
                            }
                            else
                            {
                                while (!int.TryParse(pos1, out p1r))
                                {
                                    Console.WriteLine("Du skal indtaste et tal for din lodrette række");
                                    pos1 = Console.ReadLine();
                                }
                            }
                        }while (!int.TryParse(pos1, out p1r) && p1r < 0 || p1r > 2);



                        Console.Write(player + " indsæt vandret række:  ");
                        pos2 = Console.ReadLine();

                        while (!int.TryParse(pos2, out p2r))
                        {
                            Console.WriteLine("Du skal indtaste et tal for din vandret række");
                            pos2 = Console.ReadLine();
                        }
                        while (p2r < 0 || p2r > 2)
                        {
                            Console.WriteLine("Du skal indtaste et tal mellem (0 - 2) for din vandret række");
                            pos2 = Console.ReadLine();
                        }
                        if (_game.CheckIfFree(board, p1r, p2r))
                        {
                            board[p1r, p2r] = 'X';
                            SpaceFilled     = false;
                        }
                        else
                        {
                            Console.WriteLine("Indtastet plads er allerede taget");
                        }
                    }while (SpaceFilled);
                    SpaceFilled = true;
                    //Check for winner

                    NoWinner = CheckForWinner();
                    if (NoWinner)
                    {
                        //AI placement
                        if (board[1, 1] == 'X' || board[1, 1] == 'O')
                        {
                            AIPlace();
                        }
                        else
                        {
                            board[1, 1] = 'O';
                        }



                        // Check for winner
                        NoWinner = CheckForWinner();
                        if (NoWinner)
                        {
                            Console.Clear();
                            Print();
                        }
                    }
                }while (NoWinner);

                Console.WriteLine("Spille igen? [Y] [N]");
                choice = Console.ReadKey().KeyChar;

                switch (choice)
                {
                case 'y':
                    NoWinner = true;
                    running  = true;
                    Console.Clear();
                    board = _game.CreateBoard();
                    break;

                case 'n':
                    Environment.Exit(0);
                    break;

                default:
                    Console.WriteLine("Kan ikke genkende dit svar");
                    break;
                }
            }while (running);
        }
예제 #9
0
 public void SetupUnitTests()
 {
     _gameWinnerService = new GameWinnerService();
 }