Exemple #1
0
        public void HorizontalWinnerCheck()
        {
            for (int i = 0; i < 4; i++)
            {
                Assert.AreEqual(Item.None, board.CheckWinner());
                board.PlaceItem(Item.Red, i);
            }

            Assert.AreEqual(Item.Red, board.CheckWinner());
        }
Exemple #2
0
        protected override async Task <InnerMoveResult> HandleAsync(Connect4MoveData moveData, int playerId)
        {
            var serializedBoard = await boardLoader.LoadByMatchIdAsync(moveData.MatchId);

            var board = new Connect4Board();

            board.DeserializeContent(serializedBoard);

            var item = playerId == 0 ? Item.Red : Item.Yellow;

            board.PlaceItem(item, moveData.Column);
            serializedBoard.BoardData = board.SerializeContent().BoardData;
            var result = new InnerMoveResult
            {
                MoveResult = new Connect4MoveResult
                {
                    Board = board.Board
                }
            };

            if (board.CheckWinner() == item)
            {
                result.Status = Status.Win;
                return(result);
            }

            if (board.Full)
            {
                result.Status = Status.Draw;
                return(result);
            }

            result.Status = Status.Success;
            return(result);
        }