gpt4 book ai didi

c - 井字棋无敌AI代码问题

转载 作者:行者123 更新时间:2023-11-30 20:06:59 25 4
gpt4 key购买 nike

我决定制作一个井字游戏的 C 程序。我现在正在努力让AI立于不败之地,但是遇到了问题。

我写了这个:

int getFutureScoreOfMove(char square[][columns], char turn)
{
int row, column, curBestScore, score;

if(turn == 'C') curBestScore = -100;
else curBestScore = 100;

for(i = 0; i < 3; i ++)
{
for(j = 0; j < 3; j++)
{
if(square[i][j] == ' ')
{
if(turn == 'C')
{
square[i][j] = 'X';
score = getFutureScoreOfMove(board, 'U');
square[i][j] = ' ';
}
else
{
square[i][j] = 'O';
score = getFutureScoreOfMove(board, 'C');
square[i][j] = ' ';
}
if(turn == 'C' && score > curBestScore) curBestScore = score;
if(turn == 'U' && score < curBestScore) curBestScore = score;
}
}
}
return(curBestScore);
}

代码有问题,因为它不是无敌人工智能,而且无效。为什么?我该如何解决它?

谢谢:)

最佳答案

getFutureScoreOfMove 会调用自身,但它绝不会根据您正在检查的 Action 修改 board。这意味着它再次找到相同的移动,从而导致无限递归。计算结果时,需要在递归之前填写棋盘上的走法。

关于c - 井字棋无敌AI代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18403063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com