鱼C论坛

 找回密码
 立即注册
查看: 12907|回复: 100

[技术交流] python小练习(069):简单游戏AI设计之一(井字棋)

  [复制链接]
发表于 2017-2-7 14:25:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jerryxjr1220 于 2017-2-7 17:21 编辑

本季python小练习的最后2节准备简单介绍一下基本的游戏AI的设计,从最简单的游戏“井字棋”开始。

其实,游戏AI的设计(哪怕战胜了人类棋手的AlphaGo)无外乎包含以下几个基本功能:
1. 遍历:按照当前游戏(棋局)的所有可执行方案依次进行遍历,并返回遍历结果。遍历原则上采用“广度优先搜索”策略,对于复杂AI的设计,可以加上一定深度的“深度优先搜索”策略(比如说,预估5步或者10步等等)。但是预估的步数越多,执行的效率就越低,判别的局势也会呈现爆发式增长。
2. 局势判别:对所有遍历过的局势,对当前的游戏(棋局)进行判断判断,应该运用什么策略来进行下一步,这里往往会引入权重评分制,权重高的优先执行。
3. 选取所有策略中权重等级最高的执行,重复上述过程,直至程序终止(分出胜负)。

我们设计的井字棋小游戏,由于程序比较简单,基本上一套判别系统就可以完成上述的动作,所以我没有引入权重评分机制,而且井字棋也有比较明显的逻辑(连成一直线>拦截对手>抢中间一格>抢四角>四边),其实这就是整个遍历的过程。

我们来看一下整个过程:

Welcome to play JingZiQi!
You:1, Com:2
0 0 0
0 0 0
0 0 0
==========

请输入要下的位置,例如:“0,0”
0,0
1 0 0
0 2 0
0 0 0
==========

请输入要下的位置,例如:“0,0”
0,1
1 1 2
0 2 0
0 0 0
==========

请输入要下的位置,例如:“0,0”
2,0
1 1 2
2 2 0
1 0 0
==========

请输入要下的位置,例如:“0,0”
2,2
1 1 2
2 2 2
1 0 1
==========
Lose!

源代码:
游客,如果您要查看本帖隐藏内容请回复

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-7 14:32:18 | 显示全部楼层
要让电脑先下也可以,只需在第一步时(输入):3,3(即不在棋盘范围内的值,即可),可以测试看看电脑先手会怎么下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-7 14:46:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-7 15:19:07 | 显示全部楼层
学习一下~~~

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
llok4 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-7 16:12:06 | 显示全部楼层
我还没有看程序,是运行了,发现在我输入0,2后,棋盘上没有显示计算机的下子。
1.jpg

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
llok4 + 5 + 5 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-7 17:23:45 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2017-2-7 16:12
我还没有看程序,是运行了,发现在我输入0,2后,棋盘上没有显示计算机的下子。

谢谢反馈,有一行代码手抖了,现在更新好了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-9 01:56:14 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 11:00:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-10 11:45:02 | 显示全部楼层
DDDDDDDDDDDDDDDDDDDDDDD
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-24 10:32:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-22 21:37:16 | 显示全部楼层
xieixe感谢无私分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-26 20:20:38 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-4 18:46:18 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-4 19:16:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-23 20:20:42 | 显示全部楼层

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-27 21:54:01 | 显示全部楼层
研究~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-28 09:55:59 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-13 13:38:55 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2017-6-26 09:46:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-12 14:51:08 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 07:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表