你要干嘛?
- 做一个能游戏打赢我的机器人
你要咋做?
首先,我使用的是vscode编辑器,以及一份py3,就可以做出来一个死板筋机器人了!
STEP 1 设计游戏
我们来想想做一个什么游戏吧~
我想过做一个剪刀石头布,看看能不能让机器人猜到我会出什么,但是,太没技术含量了吧~
然后······我想到了一个点子:《狡兔三窟》。
游戏规则:
一号玩家(智障机器人)面前会有四个洞,他必须要随机选择一个洞然后 钻 进 去 ,,二号玩家(高智商会学习的流批到爆炸的AI)负责找出一号玩家会躲在哪个洞,要是猜中了,就记下他躲起来的洞;没猜中?就告诉他一号玩家在哪个洞躲着!
每10回合过去,机器人会计算二号玩家会躲在某个洞的几率,最有可能的那个洞,那个洞机器人就会在下一个十轮猜的时候占较重的权重!
总之,这样机器人就可以大致猜到下一轮二号玩家会躲在哪一个洞惹~
STEP2 写代码
1 holl = ['0','0','0','0'] #四个洞 2 import random#导入随机模块,用于随机数生成 3 import time#导入时间模块,用于让ai休息(雾) 4 numo = 0 5 6 while True: 7 file = open("F:/python code/AIvsAI/data.txt",'a',encoding='utf-8') #打开记录文件“data.txt”~ 8 num1 = random.randint(0,3)#生成0-3的随机数,这个是脑残机器人猜的 9 num2 = random.randint(0,3)#生成0-3的随机数,这个是ai猜的 10 11 holl[num1] = '1' #把脑残机器人选择的那个洞填上 12 if holl[num2] == '0': 13 print("没猜中!其实他在第"+str(num1 + 1)+'号洞!') 14 file.write("输("+str(num1)+' '+str(num2)+") ") 15 #ai去看的时候发现洞不是被填上的,那么就告诉他没猜中,还有智障机器人在哪里···· 16 if holl[num2] == '1': 17 print("猜中!他的确在第"+str(num1 + 1)+'号洞!') 18 file.write("赢("+str(num1)+' '+str(num2)+") " ) 19 #ai去看的时候发现洞填上了,就会告诉他没猜中,还有智障机器人在哪里···· 20 file.close()#关闭文件以防电脑卡顿 21 time.sleep(0.5)#休息个0.5秒 22 holl = ['0','0','0','0']#把洞上的土刨掉,又变成四个空空如也的洞
具体大家可以看注释(绿色的字)
我们可以保存ai输赢的记录,还可以记下两方分别躲在那个洞!
来看看运行效果?
下一期,我们互会让ai智能化!
来源:https://www.cnblogs.com/scpgo/p/12417153.html