【发布时间】:2011-04-22 21:09:07
【问题描述】:
首先,我是一个菜鸟。我也是一名清洁工,从来没有写过一毛钱的代码。这只是我喜欢做的事情。这是为了好玩:) 话虽如此,我写了这个基于控制台的井字游戏,它有足够的 AI 不会输掉每一场比赛。 (我猜应该叫 ai。)它有类似 70 个 if/else if 用于计算机转动的语句。我使用了 3 个 int 数组,如下所示:
int L[2], M[2], R[2];
0 = 空白;
1 = X;
2 = O;
然后棋盘“看起来”像
L[0] |米[0] | R[0]
L[1] |米[1] | R[1]
L[2] |米[2] | R[2]
所以我基本上写出了我能想到的所有可能的场景:
if(M[0]==1 & M[1]==1 & M[2]==0){M[2] = 2;}//here the computer prevents a win
else if(L[0] ==2&M[1]==2&R[2]==0){R[2]=2;}//here the computer wins
//and so on....68 more times!
我想我的问题是:
有更好的方法吗?
有没有办法用更少的代码行来实现相同的结果?
这被认为是人工智能?
【问题讨论】:
-
井字游戏算法的一个有趣实现,可能作为 ImageJ 宏,将读取位于 xkcd.com/832(即 wget imgs.xkcd.com/comics/tic_tac_toe_large.png)的 PNG 图像并从中提取答案...有接受者吗?
-
继续玩得开心!显然,根据回答,您可以学习很多东西。它的美妙之处在于,学习下面的一个花哨的流行语可以打开更多的东西来玩。搜索“tic-tac-toe ai”以找到解决问题的一些方法。所以你知道,对“有更好的编程方法吗?”的正确回答。是“是的。我的方式。” :)
-
研究计算机玩游戏取胜是人工智能领域的一部分。事实上,游戏是人工智能领域的第一个案例研究。话虽如此,为每一个可能的举动提供预设的反应并不是真正的人工智能。 :-) 你是提供情报的人;计算机并没有自己“解决”它。几乎任何介绍性 AI 教科书都会讨论 Colin 下面的回答中描述的 Minimax 算法。
-
++ 希望你能尽快找到工作编写代码。
-
@Mike Dunlavey 是的,让我们。我愿意接受任何想要高质量菜鸟代码的人的钱。
标签: c++ optimization if-statement artificial-intelligence