Tictaoe AI-计算机胜出动作java

Tictaoe AI-计算机胜出动作java,java,artificial-intelligence,Java,Artificial Intelligence,有没有一种方法可以让人工智能在Tictatcoe上使用for loop来赢得移动。因此,检查相邻的任何两个按钮是否具有值X或O,然后使第三个按钮具有相同的值,以使AI获胜 使用for循环遍历由3×3个按钮组成的数组,并检查相邻的任意两个按钮是否具有相同的值 我试过这个,但不确定它是否正确,因为它不是;t使用计算机不会产生任何成功的动作。为便于理解,您可以为行/列/对角线分别创建多个循环: 在一行/列/对角线中计算X或O,如果它等于2,则在剩余字段中添加第三个(如果为空) 有很多方法可以实现你想要

有没有一种方法可以让人工智能在Tictatcoe上使用for loop来赢得移动。因此,检查相邻的任何两个按钮是否具有值X或O,然后使第三个按钮具有相同的值,以使AI获胜

使用for循环遍历由3×3个按钮组成的数组,并检查相邻的任意两个按钮是否具有相同的值


我试过这个,但不确定它是否正确,因为它不是;t使用计算机不会产生任何成功的动作。

为便于理解,您可以为行/列/对角线分别创建多个循环: 在一行/列/对角线中计算X或O,如果它等于2,则在剩余字段中添加第三个(如果为空)

有很多方法可以实现你想要的。你甚至可以对每一个可能的动作施以暴力,数一数获胜的结果,然后选择一个可能性最大的


另一个简单的方法是编写一个方法,该方法将检查每个场地是否阻止了对手的获胜移动和/或导致自己的获胜移动。

游戏中常见的a.I.算法基本上是,玩家前瞻性地评估每个可能的事件序列所导致的游戏状态,并选择这样的行动,以最大限度地提高他们获胜的机会

对于TIC Tac趾,你可能想考虑从一个球员开始,并看所有可能的孩子状态,可以遵循给定的状态。你可以评估一些分数,比如这个动作是否会让你进入一个有2个x的状态。然后你将这个分数传播到你的树上,这样当前玩家就可以做出明智的决定了。”

Min-max假设你的对手打得很好,所以你有时会遇到问题


有关人工智能和tic-tac-toe问题的详细说明,请参阅第5章“对抗性搜索”,其中介绍了游戏,并特别提到了tic-tac-toe。

您看过称为Alpha-Beta剪枝的算法吗?如果不是,这是实现AI-tic-tac-toe的好方法player@AlejandroLucena,不,我从来没有遇到过这个算法,但我现在会查找它。@bleed182,以前,我做了很多if和else if语句,但我对循环的理解更好,但我发现很难将if和else if转换为for循环。如果你觉得不确定,最好从一个更简单的编程任务开始,即使是简单的人工智能,如果没有经验也不是最容易实现的。我做了一个硬编码的人工智能,因此,使用if和else-if语句检查所有可能的中奖动作,这很好,但代码非常大且混乱,因此我尝试使用for循环检查中奖动作,但我的尝试没有成功;不起作用。