03 2018 档案

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

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

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

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

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

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

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

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

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

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

导航