/// <summary>
 /// Used to set one position equal to another.
 /// </summary>
 /// <param name="position"></param>
 public void copy(ChessPosition position)
 {
     Board              = position.Board;
     King               = position.King;
     Queens             = position.Queens;
     Rooks              = position.Rooks;
     Bishops            = position.Bishops;
     Knights            = position.Knights;
     Pawns              = position.Pawns;
     RotatedR90         = position.RotatedR90;
     RotatedL90         = position.RotatedL90;
     RotatedA1H8        = position.RotatedA1H8;
     RotatedA8H1        = position.RotatedA8H1;
     Pinning            = position.Pinning;
     Pinned             = position.Pinned;
     Enpasant           = position.Enpasant;
     canCastleKingside  = position.canCastleKingside;
     canCastleQueenside = position.canCastleQueenside;
     Color              = position.Color;
     isKingInCheck      = position.isKingInCheck;
     isKingMated        = position.isKingMated;
     isKingStaleMated   = position.isKingStaleMated;
 }
 /// <summary>
 /// A copy constructor used for cloning a position.
 /// </summary>
 /// <param name="position"></param>
 public ChessPosition(ChessPosition position)
 {
     copy(position);
 }