at TicTacToe.minvalue(TicTacToe.java:184)
at TicTacToe.maxvalue(TicTacToe.java:197)
at TicTacToe.minvalue(TicTacToe.java:184)
at TicTacToe.maxvalue(TicTacToe.java:197)
at TicTacToe.minvalue(TicTacToe.java:184)
at TicTacToe.maxvalue(TicTacToe.java:197)
at TicTacToe.minvalue(TicTacToe.java:184)
at TicTacToe.maxvalue(TicTacToe.java:197)
at TicTacToe.minvalue(TicTacToe.java:184)
at TicTacToe.maxvalue(TicTacToe.java:197)
at TicTacToe.minvalue(TicTacToe.java:184)
Я не вижу ошибки, потому что она такая длинная.
Вот функции maxValue () и minValue ()
private int minvalue(char [] brd){
int m = (int) Integer.MAX_VALUE;
int v;
for(int a : actions(brd)){
char [] nextbrd = result(brd, a, human);
if(status(nextbrd)=='C') v = maxvalue(nextbrd); //line 184
else v = utility(nextbrd);
m = Math.min(m, v);
}
return m;
}
private int maxvalue(char [] brd){
int m = (int) Integer.MAX_VALUE;
int v;
for(int a : actions(brd)){
char [] nextbrd = result(brd, a, agent);
if(status(nextbrd)=='C') v = minvalue(nextbrd); //line 189
else v = utility(nextbrd);
if(v==Math.max(m, v)) nextAction = a;
m = Math.max(m, v);
}
return m;
}
функция полезности () просто возвращает 1, если победителем является агент. -1 иначе.
статус возвращает 'C', если игра еще не закончена.
Я не знаю, что случилось.
ОБНОВЛЕНИЕ: я изменил m в функции maxValue () на MIN_VALUE, но я все еще получаю ту же ошибку.