我尝试将minimax算法实现到我的连接四游戏中。 我想用递归实现它。但是我认为我不会用我的功能探索整个游戏树:
for(i=0;i<COLS;i++) {
if(can_throw(c, i) == 0) {
throw(f, i);
if((is_winner(c) == 0) && (is_board_full(f) == 0)) { //no winner, board not full
minimax(f);
}
else if(is_winner(c) == 1) { //there is a winner
evaluate_turn();
undo_turn();
}
else if(is_winner(c) == 0 && (is_board_full(f) == 1)) { //no winner, board full
evaluate_turn();
undo_turn();
}
}
}
有人有解决方案如何使用递归来探索整个游戏树? 胜利只有1,平局为0,亏损为-1。
我不确定最好的方法是将评估相互比较,在“顶级”上获得正确的值而不引入数据结构(这会超出内存)。有人知道怎么做吗?