// Methods to generate strength array from all pieces on the board public static float[,] InitStrength(Dictionary <Square, AiChessPiece> board) { float[,] strength = new float[8, 8]; foreach (AiChessPiece piece in board.Values) { AiMovementUtil.GetPossibleMoves(board, piece, true, strength); } return(strength); }
// Get all possible moves for a piece on the board private static List <ChessMove> GetMovesForPiece(Dictionary <Square, AiChessPiece> board, float[,] strength, AiChessPiece piece) { List <Square> possibleSquares = AiMovementUtil.GetPossibleMoves(board, piece, false, null); List <ChessMove> possibleMoves = new List <ChessMove>(); foreach (Square s in possibleSquares) { if (piece.Position.Equals(s)) { continue; } ChessMove move = new ChessMove(board, piece.Position, s, EvaluateMove.Instance.EvaluateChessMove(board, strength, piece.Position, s, piece.Owner.Name)); move.AttackOnly = s.AttackOnly; possibleMoves.Add(move); } return(possibleMoves); }