gpt4 book ai didi

c++ - If(), else if() c++中的替代方案(这是AI吗?)

转载 作者:可可西里 更新时间:2023-11-01 16:38:28 26 4
gpt4 key购买 nike

首先,我是一个菜鸟。我也是一个从未通过编写代码赚过一毛钱的看门人。这只是我喜欢做的事情。这是为了好玩:) 话虽这么说,我写了这个基于控制台的井字游戏,它有足够的人工智能,不会输掉每场比赛。 (我想 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!

我想我的问题是(是):
有没有更好的方法?
有没有办法用更少的代码行达到同样的结果?
这是考虑人工智能?

最佳答案

此标准算法称为 Minimax .它基本上构建了一棵树,游戏的开始是根,然后子节点代表 X 在第一轮可以做出的每一个可能的移动,然后每个节点的子节点是 O 可以响应的所有移动,等等。一旦整棵树都被填满(这对于井字棋来说是可能的,但对于像国际象棋这样的游戏,计算机仍然没有足够的内存),你就可以重新开始,假设两个玩家都足够聪明,可以使最佳着法,并得出最佳着法。这是 another explanation Minimax 的具体使用 Tic Tac Toe 为例。

关于c++ - If(), else if() c++中的替代方案(这是AI吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com