2018年3月28日

新手立体四子棋AI教程(4)——启发式搜索与主程序

摘要: 通过前面几篇文章的学习,我们的四子棋程序已经有了框架、搜索几大部分,但是还有着不少问题,我们的程序只能迭代很有限的步骤,导致棋力低下,在这一篇我们将通过启发式搜索极大的优化搜索效率。 一、原因 我们之前的产生走子位置的函数很简单,即找到棋盘上的空余位置。它的不合理性体现在两方面: 还是前一章的那张图 阅读全文

posted @ 2018-03-28 13:37 Scobbing 阅读(1828) 评论(0) 推荐(0) 编辑

新手立体四子棋AI教程(3)——极值搜索与Alpha-Beta剪枝

摘要: 上一篇我们讲了评估函数,这一篇我们来讲讲立体四子棋的搜索函数。 一、极值搜索 极值搜索是game playing领域里非常经典的算法,它使用深度优先搜索(因为限制最大层数,所以也可以称为迭代加深搜索)来遍历未来n步的走子情况。在每层模拟中都会选择对自己最优的位置,通过最大化自己的利益(也就是上一篇提 阅读全文

posted @ 2018-03-28 13:10 Scobbing 阅读(3102) 评论(0) 推荐(0) 编辑

python实现维吉利亚密码加密(Vigenère cipher)

摘要: 最近有个朋友问我关于维吉利亚密码如何用python实现加密,研究之后发现这是个挺好玩的东西,遂决定写篇博文记录一下。 一、何谓维吉利亚密码 第一列是密钥字母列,第一行是明文字母行。不难看出维吉利亚密码是基于凯撒加密进一步的延伸,使用了密钥的概念来对抗字频统计。 维吉尼亚密码引入了“密钥”的概念,即根 阅读全文

posted @ 2018-03-28 12:09 Scobbing 阅读(2769) 评论(0) 推荐(0) 编辑

2018年3月23日

新手立体四子棋AI教程(2)——价值评估函数

摘要: 上一篇我们完成了整个程序的基础框架,那么在讲到真正的搜索算法前,我们先来看看五子棋如何评估当前局势,以及如何计算某个位置的价值。 一、五子棋 在五子棋中,包括成五,活三,活二等定势,下图为山东师范大学董红安在2005年的硕士毕业论文中使用的的评分表,可以供我们来参考。 但是对于四子棋来说,上述评分却 阅读全文

posted @ 2018-03-23 18:26 Scobbing 阅读(2115) 评论(0) 推荐(0) 编辑

新手立体四子棋AI教程(1)——基础扫盲

摘要: 一、引言 最近身边好几个朋友开始玩立体四子棋,激起了我的好奇心。那么首先来说什么是【立体四子棋】,规则又是如何呢? 上图即为立体四子棋,规则类似于五子棋四子连在一起,但是四子棋更加多样、丰富。不仅可以在平面内横竖斜四子连在一起,还可以在不同平面内四子斜着连在一起、同一根柱子上四子连在一起,可谓十分有 阅读全文

posted @ 2018-03-23 13:12 Scobbing 阅读(8111) 评论(3) 推荐(1) 编辑

2017年1月25日

OpenCV与Qt的环境搭建及Demo

摘要: 前言: 前段时间写了很多OpenCV的程序,虽然重点在算法上,但图像窗口只能靠cvNamedWindow,效果很不理想。遂希望用Qt配合OpenCV使用,为我的程序建立图形化界面。然而,依我对OpenCV的了解,环境配置一定是玄学,在解决了多个问题后,终于实现了Demo,在这里分享下我的成果,也感谢 阅读全文

posted @ 2017-01-25 12:35 Scobbing 阅读(63617) 评论(2) 推荐(1) 编辑

2016年12月25日

关于【error C3646: 未知重写说明符】的若干种可能性

摘要: 如果在程序中出现了error C3646,那么这个错误可能是由多种问题所导致的,这篇文章将对多种错误及对应解决方法进行分析。 在MSDN的官方网站中,Complier Error C3646的定义为unknown override specifier,并且其解释为The compiler found 阅读全文

posted @ 2016-12-25 16:43 Scobbing 阅读(42365) 评论(2) 推荐(2) 编辑

2016年11月12日

Xcode配置libdc1394

摘要: Xcode如何配置libdc1394库 阅读全文

posted @ 2016-11-12 21:48 Scobbing 阅读(895) 评论(0) 推荐(0) 编辑

导航