Exemple #1
0
        public void PlacePiece(GamePieceTypeEnum gamePieceType, BoxPositionEnum boxPosition)
        {
            CheckNotAllowedMoves(gamePieceType, boxPosition);
            PlacePieceIntoBox(gamePieceType, boxPosition);
            SetLastGamePlacedPiece(gamePieceType);

            if (BoardIsFull())
            {
                SetGameDrawResult();
            }

            if (ThreePiecesOfSameTypeInARow(gamePieceType))
            {
                SetGameWinResult(gamePieceType);
            }
        }
Exemple #2
0
        private void CheckNotAllowedMoves(GamePieceTypeEnum gamePieceType, BoxPositionEnum boxPosition)
        {
            if (FirstGamePlacedPieceIsWhite(gamePieceType))
            {
                throw new WrongFirstPiecePlacedException();
            }

            if (IsOcuppiedBox(boxPosition))
            {
                throw new OcuppiedBoxException();
            }

            if (LastPlacedPieceIsSameColor(gamePieceType))
            {
                throw new WrongPiecePlacedException();
            }
        }
Exemple #3
0
 private void PlacePieceIntoBox(GamePieceTypeEnum gamePieceType, BoxPositionEnum boxPosition)
 {
     _boxes[(int)boxPosition] = gamePieceType;
 }
Exemple #4
0
 private bool IsOcuppiedBox(BoxPositionEnum boxPosition)
 {
     return(_boxes[(int)boxPosition] != GamePieceTypeEnum.None);
 }