前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AlphaGo挑战李世石,我的点格棋程序挑战孩子

AlphaGo挑战李世石,我的点格棋程序挑战孩子

作者头像
申龙斌
发布2018-03-06 13:54:09
1.3K0
发布2018-03-06 13:54:09
举报

不知道从什么时候开始,我开始对各种智力游戏非常感兴趣。记得上小学的时候,有一次到同学家玩,第一次看见魔方,转了2个小时没停手,由于要回家吃饭,所以才恋恋不舍地放下了魔方。

象棋是与父亲学的,但他思维保守,布局从不变化,很快就下不过我了。大学时遇见了郝舍长和其他棋友,才知道了什么是象棋高手。工作后参加了几次油田比赛,最好名次为第9,又看了很多专业比赛的棋谱,才明白了业余水平和专业水平的差距之大。

桥牌也是在大学时期学会的,当时数学系的几位同学在学习桥牌,大家凑在一起乱叫牌、乱打牌,慢慢地掌握了叫牌、打牌和记分等一系列规则,还与其它年级的同学举办双人赛,虽然只掌握了简单的自然叫牌法,但也是玩得其乐融融。

有了孩子之后,我一直认为这些游戏能够寓教于乐,让她在游戏的过程中掌握多种逻辑思维的技巧,这些思考的过程对于将来的学习会有潜移默化的作用。

所以我尝试着慢慢地将多种棋类游戏、牌类游戏慢慢教给她,不求精通,想起哪款就玩哪个。想想到现在为止,一起玩过中国象棋、国际象棋、跳棋、围棋、军棋、五子棋、斗兽棋、点格棋、不围棋、亚马逊棋、西洋跳棋、爱恩斯坦棋、苏拉卡尔塔棋......还有麻将游戏以及好多种牌类游戏,列不全了。

点格棋是我在旁观了一次计算机博弈大赛时发现的,与孩子试玩了几盘后,孩子也非常喜欢。这种棋的道具和规则都相当简单,一人画一根线,围成一个方格就得1分。

孩子的高中学习非常紧张,所以我们平常只是周末或放假时才玩上几盘,没过多久我们发现了一些技巧,有时你并不是见到空的格子就围住,而要让格!让给对方2格,自己能收获更多的格子!

很快,我慢慢下不过她了,真不是故意让着她。因为要考虑的细节太多,我懒得把这些地方全考虑好,而这个游戏就是让你有大局观,提前把最后的情况考虑到,所以说人生如棋还真有道理。

下不过她没关系,我会计算机编程啊,给她下了战书,我要写一款点格棋程序来挑战她,她欣然同意。这个程序大概是2015年9月开始动手的,因为以前有过“中国象棋引擎编程”的基础,到了2015年11月,我的点格棋1.0程序终于完成了。找了一个周末与她共下了3盘,孩子有点轻敌,最后我的程序2:1取得胜利。

程序用C#编写,对弈策略使用贪婪着法和让格着法,只能进行6层alphabeta剪枝搜索。我已经发现它还有许多待改进之处(比如判断的效率、搜索的深度),但转眼1年过去了,实在找不出时间对它进一步完善。

程序将引擎和界面分开,集成了单元测试,可在计算机博弈大赛的对弈平台2.1版本上使用。对此程序感兴趣的同学可以在此文打赏256元,可以得到所有源代码,并赠送一些参考文献。

(1)C#源程序

(2)从网上搜集的10多篇参考文献

(3)计算机博弈大赛对弈平台2.1

(4)开源的dabble源代码及执行程序

写在后面:曾经看过围棋的智能算法,认为计算量太大,当李世石与AlphaGo对弈时,我赌人胜,没想到google的计算机程序发展得太快了,人类的优势领域都在被机器所取代。我们的后代更需要做好职业规划和多维度的技能持续积累,好迎接智能时代的到来。

--- END ---

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 申龙斌的程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档