Здравствуйте, во-первых, у меня очень хороший английский, так что извините, если что-то непонятно. Я написал алгоритм MinMax для крестиков-ноликов, и он отлично работал. Итак, я попробовал алгоритм MinMax для четырех подключений, к сожалению, он не работает так, как я хочу. Затем я нашел в гугле альфа-бету MinMax, и когда я, наконец, понял это, я попробовал, но это была катастрофа ^^. Вот мой MinMax, что я сделал для 4 коннекта, может кто-нибудь дать мне совет, как мне реализовать альфа и бета?
private int computerzug(Color[][] board, int depth, Color spielerFarbe)
{
if(getGameLogic().hasWon(board, spielerFarbe))
{
System.out.println("hy");
return -10 -depth;
}
if(getGameLogic().hasDraw(board))
{
return 0;
}
if(depth==6)
{
return 0;
}
int max = Integer.MIN_VALUE;
int index = 0;
for(int i =0;i<board[0].length;i++)
{
if(board[0][i].equals(Color.WHITE))
{
Color[][] board1 = new Color[board.length][board[0].length];
board1 = copy(board);
board1[getRow(board, i)][i] = spielerFarbe;
int moval = -computerzug(board1, depth+1, (spielerFarbe.equals(Color.BLUE)?Color.RED:Color.BLUE));
if(moval> max)
{
max = moval;
index = i;
}
}
}
if(depth==0)
{
col = index;
row = getRow(this.board, index);
}
return max;
}
Я работаю с 2D-массивами цветов для имитации платы.