Beispiel #1
0
        public bool CanPieceMove(PieceEntity piece, BoardMovementDirection direction)
        {
            var targetPosition = piece.Position + DirectionToOffset(direction);

            return(_board.IsPieceInBoard(piece.Piece, targetPosition) &&
                   !_board.IsPieceColliding(piece.Piece, targetPosition));
        }
Beispiel #2
0
        public static Point DirectionToOffset(BoardMovementDirection direction)
        {
            switch (direction)
            {
            case BoardMovementDirection.Down:
                return(new Point(0, 1));

            case BoardMovementDirection.Left:
                return(new Point(-1, 0));

            case BoardMovementDirection.Right:
                return(new Point(1, 0));

            default:
                throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
            }
        }
Beispiel #3
0
 public void Move(BoardMovementDirection direction)
 {
     Position += BoardMovement.DirectionToOffset(direction);
 }