首先,我是一个noob。我也是一名从未制作过硬币编码的看门人。这只是我喜欢做的事情。这是为了好玩:)据说,我写了这个基于控制台的tic-tak-toe游戏,有足够的ai不会失去每场比赛。 (我猜ai就是它应该被调用的东西。)它有类似70 if/else if语句的计算机转向。我使用3个int数组,如下所示:如果(),否则如果()在c + +替代(这是AI?)
int L[2], M[2], R[2];
0 =空白; 1 = X; 2 = O;
董事会然后'看起来像'
L [0] | M [0] | R [0]
L [1] | M [1] | R [1]
L [2] | M [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!
我想我的问题(s)为(是):
有没有更好的办法?
有没有办法用较少的代码行来实现相同的结果?
这是否被认为是人工智能?
一个有趣的井字游戏算法的实现,可能是一个ImageJ宏,它可以读取http://xkcd.com/832/上的PNG图像(例如wget http://imgs.xkcd。 com/comics/tic_tac_toe_large.png)并从中提取他们的答案......任何接受者? – 2011-04-22 21:20:45
保持乐趣!显然,根据回复,有很多东西可供你学习。它的美妙之处在于,学习下面这些花哨的流行语,可以打开更多玩法。搜索“tic-tac-toe ai”以找到解决问题的方法。所以你知道,对“有没有更好的方法来编程?”的正确回应。是“是的,我的方式”。 :) – gregg 2011-04-22 21:29:32
研究电脑玩游戏取胜是人工智能领域的一部分。事实上,游戏是人工智能领域的第一个案例研究。这就是说,为每一个可能的举措提供一个罐头响应并不是真正的AI。 :-)你是提供情报的人;电脑并不是“为自己弄清楚”。几乎任何介绍性AI教科书都会讨论Colin在下面的答案中描述的Minimax算法。 – 2011-04-22 22:44:56