试图了解电脑游戏玩家以熟悉AI。我理解minimax在理论上是如何工作的,但是无法理解我在网上找到的代码是如何工作的。 有人可以向我解释minimax结果/计算机移动功能(第38-78行)。 信用:https://gist.github.com/MatthewSteel/3158579
感谢
df2 <- data.frame(time=seq(min(df$time), max(df$time)), value=NA)
df2[df$time,"value"] <- df$value
acf(df2$value, lag.max=10, type="cor", plot=FALSE, na.action=na.pass)
# Autocorrelations of series ‘df2$value’, by lag
#
# 0 1 2 3 4 5 6 7 8 9 10
# 1.000 0.716 0.665 0.415 0.166 0.194 0.046 0.007 0.029 0.008 -0.041
答案 0 :(得分:1)
以下是minimax
:
int minimax(int board[9], int player) {
// ....
for(i = 0; i < 9; ++i) { //For all moves,
// ....
int thisScore = -minimax(board, player*-1);
}
}
完成每个可能的移动,并且对于每个可能的移动,转动棋盘,假装是另一个玩家(那是player*-1
部分),并尝试每个可能的移动。 thisScore
被设置为递归调用minimax
的负返回值,因为对其他玩家的好处等于对我们自己有害。
computerMove
只需完成所有可能的移动,为每个可能的移动调用minimax
,并使用效果最佳的移动。