Algorithm 对于井字游戏,我可以使用什么算法来确定;“最佳行动”;对于人工智能?
在tic-tac-toe实现中,我想最具挑战性的部分是确定机器要玩的最佳动作Algorithm 对于井字游戏,我可以使用什么算法来确定;“最佳行动”;对于人工智能?,algorithm,artificial-intelligence,tic-tac-toe,Algorithm,Artificial Intelligence,Tic Tac Toe,在tic-tac-toe实现中,我想最具挑战性的部分是确定机器要玩的最佳动作 可以采用哪些算法?我正在研究从简单到复杂的实现。我将如何着手解决这部分问题?用数字分数对每个正方形进行排序。如果选择了正方形,则转到下一个选项(按秩降序排序)。你需要选择一种策略(第一种策略主要有两种,第二种策略主要有三种)。从技术上讲,您可以对所有策略进行编程,然后随机选择一种。这将使对手更难预测。生成每一个可能的棋盘并根据随后生成的棋盘得分的蛮力方法不需要太多内存,尤其是当你意识到90度的棋盘旋转是多余的,就像垂直
可以采用哪些算法?我正在研究从简单到复杂的实现。我将如何着手解决这部分问题?用数字分数对每个正方形进行排序。如果选择了正方形,则转到下一个选项(按秩降序排序)。你需要选择一种策略(第一种策略主要有两种,第二种策略主要有三种)。从技术上讲,您可以对所有策略进行编程,然后随机选择一种。这将使对手更难预测。生成每一个可能的棋盘并根据随后生成的棋盘得分的蛮力方法不需要太多内存,尤其是当你意识到90度的棋盘旋转是多余的,就像垂直、水平、垂直方向的翻转一样,和对角轴 一旦你达到这一点,在树形图中有不到1k的数据来描述结果,因此是计算机的最佳移动
-Adam因为你只需要处理一个3x3的可能位置矩阵,所以写一个搜索所有可能位置的方法就很容易了,而不需要耗费你的计算能力。对于每个开放空间,计算标记该空间后所有可能的结果(递归地,我会说),然后使用最有可能获胜的移动 优化这将是浪费精力,真的。尽管一些简单的方法可能是:
- 首先检查是否有可能赢得 另一队,挡住第一队 你发现(如果游戏中有两个) 无论如何,结束了)李>
- 如果中心是开放的,一定要去 (之前的规则没有任何限制。) 候选人)
- 在边前转弯(再次, 如果前面的规则为空)
简而言之,你想做的不是寻找对你来说可能有最好结果的移动,而是寻找可能有最坏结果的移动。如果你认为你的对手打得很好,你必须假设他们会采取对你最不利的行动,因此你必须采取使他们最大收益最小化的行动。不使用运动场的尝试
Turn = 1 Go(1) (upper left corner).
Turn = 2 If Board[5] is blank, Go(5), else Go(1).
Turn = 3 If Board[9] is blank, Go(9), else Go(3).
Turn = 4 If Posswin(X) is not 0, then Go(Posswin(X)) i.e. [ block opponent’s win], else Go(Make2).
Turn = 5 if Posswin(X) is not 0 then Go(Posswin(X)) [i.e. win], else if Posswin(O) is not 0, then Go(Posswin(O)) [i.e. block win], else if Board[7] is blank, then Go(7), else Go(3). [to explore other possibility if there be any ].
Turn = 6 If Posswin(O) is not 0 then Go(Posswin(O)), else if Posswin(X) is not 0, then Go(Posswin(X)), else Go(Make2).
Turn = 7 If Posswin(X) is not 0 then Go(Posswin(X)), else if Posswin(X) is not 0, then Go(Posswin(O)) else go anywhere that is blank.
Turn = 8 if Posswin(O) is not 0 then Go(Posswin(O)), else if Posswin(X) is not 0, then Go(Posswin(X)), else go anywhere that is blank.
Turn = 9 Same as Turn=7.