public void OutOfBoundsCheck()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            bool expected = false;
            bool actual   = PenteController.TakeTurn(-50, -50);

            Assert.AreEqual(expected, actual);
        }
        public void ChangePlayerTurnAfterTakingATurn_MultiPlayerMode()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, true);
            var  expected = !PenteController.game.IsFirstPlayersTurn;
            bool actual;

            PenteController.TakeTurn(1, 1);
            actual = PenteController.game.IsFirstPlayersTurn;

            Assert.AreEqual(expected, actual);
        }
Beispiel #3
0
        private void TakeTurnsWithPoints(PenteController game, Point[] whitePoints, Point[] blackPoints)
        {
            if (whitePoints.Length != blackPoints.Length)
            {
                throw new ArgumentException("You need to pass in two arrays of equal size");
            }
            int TotalNumber = blackPoints.Length + whitePoints.Length;
            int whitePoint  = 0;
            int blackPoint  = 0;

            for (int i = 0; i < TotalNumber; i++)
            {
                if (i % 2 == 0)
                {
                    game.TakeTurn(whitePoints[whitePoint++], PieceColor.White);
                }
                else
                {
                    game.TakeTurn(blackPoints[blackPoint++], PieceColor.Black);
                }
            }
        }
Beispiel #4
0
        private PenteController StartGame()
        {
            var newGame = new PenteController();

            newGame.CurrentMode = GameMode.MultiPlayer;
            var point = new Point();

            point.x = 9;
            point.y = 9;
            var color = PieceColor.Black;

            newGame.TakeTurn(point, color);
            return(newGame);
        }
        public void FirstPlayerTakesTurn()
        {
            int row    = 1;
            int column = 1;

            PenteController.StartGame(PlayMode.MultiPlayer, true);

            PenteController.TakeTurn(row, column);

            PieceColor actual   = PenteController.game.GetPieceAt(row, column);
            PieceColor expected = PieceColor.Black;

            Assert.AreEqual(expected, actual);
        }
Beispiel #6
0
        public void Allow_The_First_Piece_To_Be_In_The_Center_Of_The_Board()
        {
            //arrange
            var game  = new PenteController();
            var point = new Point();

            point.x = 9;
            point.y = 9;
            var piece = PieceColor.Black;
            //act
            var IsValidMove = game.TakeTurn(point, piece);

            //assert
            Assert.IsTrue(IsValidMove);
        }
        public void SecondPlayerTakesTurn()
        {
            int row    = 5;
            int column = 5;

            PenteController.StartGame(PlayMode.MultiPlayer, true);

            PenteController.TakeTurn(1, 1);
            PenteController.TakeTurn(row, column);

            PieceColor actual   = PenteController.game.GetPieceAt(row, column);
            PieceColor expected = PieceColor.White;

            Assert.AreEqual(expected, actual);
        }
        public void Tria_Event_Vertical()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            //Set up
            PenteController.game.SetPieceAt(5, 5, PieceColor.Black);
            PenteController.game.SetPieceAt(6, 5, PieceColor.Black);

            //Make Tria move
            PenteController.TakeTurn(7, 5);

            bool expected = true;
            bool actual   = PenteController.game.Tria;

            Assert.AreEqual(expected, actual);
        }
        public void TriaWithGap_Event_Diagonal()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            //Set up
            PenteController.game.SetPieceAt(1, 1, PieceColor.Black);
            PenteController.game.SetPieceAt(2, 2, PieceColor.Black);

            //Make Tria move
            PenteController.TakeTurn(4, 4);

            bool expected = true;
            bool actual   = PenteController.game.Tria;

            Assert.AreEqual(expected, actual);
        }
Beispiel #10
0
        public void Fail_If_First_Player_Isnt_The_Black_Player()
        {
            //arrange
            var game  = new PenteController();
            var point = new Point();

            point.x = 9;
            point.y = 9;
            var piece = PieceColor.White;

            //act
            var IsValidMove = game.TakeTurn(point, piece);

            //assert
            Assert.IsFalse(IsValidMove);
        }
Beispiel #11
0
        public void Fail_If_First_Piece_Isnt_In_Center()
        {
            //arrange
            var game  = new PenteController();
            var point = new Point();

            point.x = 0;
            point.y = 0;
            var piece = PieceColor.Black;

            //act
            var IsValidMove = game.TakeTurn(point, piece);

            //assert
            Assert.IsFalse(IsValidMove);
        }
Beispiel #12
0
        public void Update_The_Board_To_Have_The_Point_Passed_In()
        {
            //arrange
            var game  = new PenteController();
            var point = new Point();

            point.x = 9;
            point.y = 9;
            var piece = PieceColor.Black;

            //act
            game.TakeTurn(point, piece);
            var IsOnBoard = game.Pieces.Contains(new GamePiece(point, piece));

            //assert
            Assert.IsTrue(IsOnBoard);
        }
        public void Tessera_Event_Diagonal()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            //Set up
            PenteController.game.SetPieceAt(5, 5, PieceColor.Black);
            PenteController.game.SetPieceAt(6, 6, PieceColor.Black);
            PenteController.game.SetPieceAt(7, 7, PieceColor.Black);

            //Make Tessera move
            PenteController.TakeTurn(8, 8);

            bool expected = true;
            bool actual   = PenteController.game.Tessera;

            Assert.AreEqual(expected, actual);
        }
        public void CaptureTest_Diagonal()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            //Set up capture
            PenteController.game.SetPieceAt(5, 5, PieceColor.Black);
            PenteController.game.SetPieceAt(6, 6, PieceColor.White);
            PenteController.game.SetPieceAt(7, 7, PieceColor.White);

            //make Capture move
            PenteController.TakeTurn(8, 8);

            var board    = PenteController.game.Board;
            var actual   = board[6, 6] == PieceColor.Empty && board[7, 7] == PieceColor.Empty;
            var expected = true;

            Assert.AreEqual(expected, actual);
        }
        public void FirstPlayerMove_WinningMoveVertical_GameOver()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, true);

            //set up win
            PenteController.game.SetPieceAt(0, 0, PieceColor.Black);
            PenteController.game.SetPieceAt(1, 0, PieceColor.Black);
            PenteController.game.SetPieceAt(2, 0, PieceColor.Black);
            PenteController.game.SetPieceAt(3, 0, PieceColor.Black);

            //Make winning move
            PenteController.TakeTurn(4, 0);

            bool expected = true;
            bool actual   = PenteController.game.IsGameOver;

            Assert.AreEqual(expected, actual);
        }
        public void FirstPlayerMakes5thCapture_GameOver()
        {
            //Set up
            PenteController.StartGame(PlayMode.MultiPlayer, true);
            PenteController.game.FirstPlayerCaptures = 4;

            PenteController.game.SetPieceAt(0, 0, PieceColor.Black);
            PenteController.game.SetPieceAt(0, 1, PieceColor.White);
            PenteController.game.SetPieceAt(0, 2, PieceColor.White);

            //Capture
            PenteController.TakeTurn(0, 3);

            bool expected = true;
            bool actual   = PenteController.game.IsGameOver;

            Assert.AreEqual(expected, actual);
        }
        public void CaptureTest_Horizantal()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, true);
            //set up capture
            PenteController.TakeTurn(0, 1);
            PenteController.TakeTurn(0, 2);
            PenteController.TakeTurn(15, 15);
            PenteController.TakeTurn(0, 3);

            //Capture
            PenteController.TakeTurn(0, 4);

            var board = PenteController.game.Board;

            var actual   = board[0, 2] == PieceColor.Empty && board[0, 3] == PieceColor.Empty;
            var expected = true;

            Assert.AreEqual(expected, actual);
        }
        public void FivePiecesInARowEndGame()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            //first capture
            PenteController.TakeTurn(0, 0); //1
            PenteController.TakeTurn(1, 0);
            PenteController.TakeTurn(0, 1); //1
            PenteController.TakeTurn(1, 1);
            PenteController.TakeTurn(0, 2); //1
            PenteController.TakeTurn(1, 2);
            PenteController.TakeTurn(0, 3); //1
            PenteController.TakeTurn(1, 3);
            PenteController.TakeTurn(0, 4); //1

            bool actual   = PenteController.game.IsGameOver;
            bool expected = true;

            Assert.AreEqual(expected, actual);
        }
        public void FiveCapturesEndGame()
        {
            PenteController.StartGame(PlayMode.MultiPlayer, isDebug: true);

            //first capture
            PenteController.TakeTurn(0, 0); //1
            PenteController.TakeTurn(0, 1);
            PenteController.TakeTurn(1, 0); //1
            PenteController.TakeTurn(0, 2);
            PenteController.TakeTurn(0, 3); //1
            //second capture
            PenteController.TakeTurn(1, 1);
            PenteController.TakeTurn(2, 0); //1
            PenteController.TakeTurn(1, 2);
            PenteController.TakeTurn(1, 3); //1
            //third capture
            PenteController.TakeTurn(2, 1);
            PenteController.TakeTurn(3, 0); //1
            PenteController.TakeTurn(2, 2);
            PenteController.TakeTurn(2, 3); //1
            //fourth capture
            PenteController.TakeTurn(3, 1);
            PenteController.TakeTurn(4, 0); //1
            PenteController.TakeTurn(3, 2);
            PenteController.TakeTurn(3, 3); //1
            //fifth capture
            PenteController.TakeTurn(4, 1);
            PenteController.TakeTurn(5, 0); //1
            PenteController.TakeTurn(4, 2);
            PenteController.TakeTurn(4, 3); //1

            bool actual   = PenteController.game.IsGameOver;
            bool expected = true;

            Assert.AreEqual(expected, actual);
        }