Tic Tac Toe电脑播放器(不是AI)

时间:2014-02-04 11:39:54

标签: java acm-java-libraries

我是大学生(第一年),我有一个使用ACM图书馆制作Tic Tac Toe控制台游戏的任务。我设法让它工作播放器VS播放器。这项任务的另一部分要求我让它像Player VS Computer一样工作。老师告诉我们不要创建一个人工智能,而是让计算机永远赢得或打成平手。我该如何实现呢?我不认为可以使用很多if和其他方法来实现它。有更聪明的方法吗?

我创建了一个名为Board的构造函数,它具有创建,显示,更新游戏板,检查X或O是否胜利(或平局)所需的所有方法,以及检查用户输入的字符串(为了播放用户必须输入类似的内容(row_space_column --->例如:" 3 1"))。我还创建了另一个文件(" TicTacToe.java"),这是游戏本身。

那么,你有什么看法? (我使用的语言是JAVA) (抱歉我的英文,我是希腊文) 谢谢!

2 个答案:

答案 0 :(得分:1)

Tic-Tac-Toe是人工智能编程的一个很好的例子,因为只有相对较少的可能移动。

另外,如果你玩得很完美(你的AI希望做什么),你将永远赢得或打成平局。

你可以很容易地测试每一个可能的动作,直到有人获胜 - 然后你采取最佳动作。

也许你应该看一下MinMax Algorithm

还有很多Tic-Tac-Toe算法的示例实现。 (如果你想我可以用Pascal给你一个:D)

编辑:我found一个关于制作Tic-Tac-Toe AI的非常好的教程。

答案 1 :(得分:1)

前提:通过使其行为适应问题的特定实例来解决一般问题的每种算法,以最大限度地提高成功几率被视为智能代理即使它是由一个if语句组成的。

鉴于此,你的作业定义不明确,无论如何,我试着给你一些提示: