首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

也说棋类游戏

之前自己编写过一点关于棋类游戏的代码,所以对于这类游戏的大致构成也算是有一些肤浅的认识,前一阵子突然想到应该将这些个零散知识好好总结一番,以算作为自己学习的一点交代。可恨这不总结还好,一总结才发现自己以前自认为通晓的知识原来还是一知半解,更是发现了一堆自己先前遗漏的知识,唉,真可谓学海无涯啊......不过本着学习“八成”原则(这是我前阵子看过的一本书中的观点,感觉还是颇为心有戚戚的,意思大抵是学习过程中不要太过求全求通,慢慢学下去自会变全变通,书名曰《超级学习法》,是本老书了,作者是一名日本的教授,具体姓氏已经不记得了,有兴趣的朋友可以Google看看),自己还是就着多有纰漏的知识储备总结了起来,并且还煞有其事的编写了一些代码,本想借着这篇博文写一写自己总结来的看法,但后来想想与其自己肤浅的在这搬运知识,还不如将自己在学习过程中参考的一些文献介绍给大家,毕竟这原版终归要胜过盗版啊 :)

02

Alpha-Beta 剪枝搜索实现黑白棋AI

黑方先行,双方交替下棋。 一步合法的棋步包括: 在一个空格处落下一个棋子,并且翻转对手一个或多个棋子; 新落下的棋子必须落在可夹住对方棋子的位置上,对方被夹住的所有棋子都要翻转过来, 可以是横着夹,竖着夹,或是斜着夹。夹住的位置上必须全部是对手的棋子,不能有空格; 一步棋可以在数个(横向,纵向,对角线)方向上翻棋,任何被夹住的棋子都必须被翻转过来,棋手无权选择不去翻某个棋子。 如果一方没有合法棋步,也就是说不管他下到哪里,都不能至少翻转对手的一个棋子,那他这一轮只能弃权,而由他的对手继续落子直到他有合法棋步可下。 如果一方至少有一步合法棋步可下,他就必须落子,不得弃权。 棋局持续下去,直到棋盘填满或者双方都无合法棋步可下。 如果某一方落子时间超过 1 分钟 或者 连续落子 3 次不合法,则判该方失败。

02
领券