【问题标题】:Tic Tac Toe invincible AI code issue井字无敌AI代码问题
【发布时间】:2013-08-23 12:36:39
【问题描述】:

我决定制作一个井字游戏的 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);                    
}

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

谢谢你:)

【问题讨论】:

  • 请不要破坏性地编辑您的问题,尤其是在人们花时间添加答案之后。 (如果这个问题没有价值 - 删除它。)
  • 对不起,我不会再这样做了,它不会让我删除它

标签: c recursion pseudocode tic-tac-toe scoring


【解决方案1】:

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

【讨论】:

  • 谢谢。我已经通过在递归调用之前添加board[row][column] = 'X'; 来纠正这个问题,并在之后重置它(参见编辑),但它仍然不是无敌的
【解决方案2】:

伪代码只是实现了一个最小/最大策略,而没有实际计算与井字游戏有关的任何事情。您的代码只是无限递归地调用自己。

【讨论】:

  • 谢谢。我已经通过添加 board[row][column] = 'X'; 来纠正这个问题。在递归调用之前,然后在之后重置它(参见编辑),但它仍然不是无敌的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多