Beispiel #1
0
 public virtual bool CanMove(Chessboard chessboard)
 {
     return(false);
 }
Beispiel #2
0
        public override Position LongestPositionToMoveTo(Chessboard chessboard)
        {
            List <Position> _positions = new List <Position>();
            Position        NewPos     = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos.Y      = (Position.Y - (Color * i));
                NewPos.X      = (Position.X);
                NewPos.Length = i;
                if (chessboard.SquareOccupied(NewPos) || !NewPos.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos2 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos2.Y      = (Position.Y + (Color * i));
                NewPos2.X      = (Position.X);
                NewPos2.Length = i;
                if (chessboard.SquareOccupied(NewPos2) || !NewPos2.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos3 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos3.Y      = (Position.Y);
                NewPos3.X      = (Position.X - (Color * i));
                NewPos3.Length = i;
                if (chessboard.SquareOccupied(NewPos3) || !NewPos3.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos4 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos4.Y      = (Position.Y);
                NewPos4.X      = (Position.X + (Color * i));
                NewPos4.Length = i;
                if (chessboard.SquareOccupied(NewPos4) || !NewPos4.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos5 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos5.Y      = (Position.Y - (Color * i));
                NewPos5.X      = (Position.X - (Color * i));
                NewPos5.Length = i;
                if (chessboard.SquareOccupied(NewPos5) || !NewPos5.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos6 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos6.Y      = (Position.Y + (Color * i));
                NewPos6.X      = (Position.X - (Color * i));
                NewPos6.Length = i;
                if (chessboard.SquareOccupied(NewPos6) || !NewPos6.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos7 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos7.Y      = (Position.Y - (Color * i));
                NewPos7.X      = (Position.X + (Color * i));
                NewPos7.Length = i;
                if (chessboard.SquareOccupied(NewPos7) || !NewPos7.WithinBounds())
                {
                    break;
                }
            }
            Position NewPos8 = new Position();

            for (int i = 0; i < 8; i++)
            {
                NewPos8.Y      = (Position.Y + (Color * i));
                NewPos8.X      = (Position.X + (Color * i));
                NewPos8.Length = i;
                if (chessboard.SquareOccupied(NewPos8) || !NewPos8.WithinBounds())
                {
                    break;
                }
            }
            List <Position> listOfPos = new List <Position>()
            {
                NewPos, NewPos2, NewPos3, NewPos4, NewPos5, NewPos6, NewPos7, NewPos8
            };

            return(listOfPos.OrderByDescending(x => x.Length).ToList()[0]);
        }
Beispiel #3
0
 public virtual Position LongestPositionToMoveTo(Chessboard chessboard)
 {
     return(new Position());
 }