在?跟着萌新一起来做一个毫无技术含量的AI?(①)

元气小坏坏 提交于 2020-03-05 11:28:27

你要干嘛?

  • 做一个能游戏打赢我的机器人

你要咋做?

  首先,我使用的是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智能化!

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!