x01.Weiqi.12: 定式布局
2015-06-20 22:30
232 查看
[b]定式[/b]
下一步当将定式保存到数据库中,如布局中的代码所示,但其初始的代码更有利于理解。以小飞挂为例:
具体使用,可参照 Board.Pattern.cs 的完整代码,其关键点,一个是四角八变换,一个是棋子颜色的控制。
[b]布局[/b]
严格说,应称作全局,但保留布局这个说法,因为它的作用并没改变,其着眼点仍然是布局。这是显而易见的,你不可能整局棋都按着保存的棋谱进行。Board.Layout.cs 开头的注释说的比较清楚,复制如下:
[b]代码下载链[/b]:https://github.com/chinax01/x01.Weiqi
下一步当将定式保存到数据库中,如布局中的代码所示,但其初始的代码更有利于理解。以小飞挂为例:
// 0 // + 0 0 // + // // + List<Pos> P_LuStar_UpFlyOne { get { var temp = new List<Pos>(); temp.Add(new Pos(3, 3)); // 第一步:左上星 temp.Add(new Pos(2, 5)); // 第二步:小飞挂 temp.Add(new Pos(5, 2)); // 第三步:小飞守 temp.Add(new Pos(1, 3)); // 第四步:小飞进角 temp.Add(new Pos(2, 2)); // 第五步:三三守 temp.Add(new Pos(2, 8)); // 第六步:拆二 return temp; } }
具体使用,可参照 Board.Pattern.cs 的完整代码,其关键点,一个是四角八变换,一个是棋子颜色的控制。
[b]布局[/b]
严格说,应称作全局,但保留布局这个说法,因为它的作用并没改变,其着眼点仍然是布局。这是显而易见的,你不可能整局棋都按着保存的棋谱进行。Board.Layout.cs 开头的注释说的比较清楚,复制如下:
/** * Board.Layout.cs (c) 2015 by x01 * ------------------------------- * 1.有了定式打基础,布局也就顺理成章了。基本上是一个路数, * 只是第一步需调整到(3,3)位,方便变换而已。 * 2.暂只考虑二连星。任他多路来,我只一路去,这相当合理。 * 3.将数据库中保存的棋谱导出添加到 Layouts 中,对局足够多足够好时, * 棋力大进是可以预期的。 * 4.本只准备保存布局的几步棋,但忽然发现保存整盘棋是有意义的,尤其对付 * gnu-go 时,因为 gnu-go 对相同棋形的反应也相同,这就为战胜它提供了 * 可能。以二连星对二连星为例,保存 200 到 2000 黑先胜 gnu-go 的棋谱 * 到数据库中,然后以此来对付 gnu-go,当有取胜的可能。此猜想并没验证, * 因为即使 200 到 2000 局棋,也需约 200 到 2000 小时方可完成。很显然, * 没有那么多时间去验证其可行性。 * 5.棋形处理较弱,而不按定式布局走棋时,又不得不倚靠棋形处理, * 看来,棋形处理才是真正的关键。而要处理好棋形,不仅仅是棋形的问题, * 还有大小,死活,全局相关等诸多问题需要解决。 */
[b]代码下载链[/b]:https://github.com/chinax01/x01.Weiqi
相关文章推荐
- [DEBUG]Opengl读取BMP文件不完整(黑块)解决方法
- printf格式化输出
- hdu5273 n次查询求逆序数对
- Windows读取文本文件后的显示过程
- Java初涉之1--Java中的 "+"
- DayDayUP_Linux运维学习_c.vim插件安装和使用
- java基础—System类的方法演示
- BestCoder Round #45
- 【整、借、学、变】四字谈起
- java学习之字符串(上)
- 自己实现基于key-value的NoSQL数据库(三)—— B+树和Hash算法
- 现代魔法:久坐1小时减寿60分钟...
- myeclipse5.5.1 GA开发工具注册码
- hdu1025整合此题网络解题思路
- 当才华配不上梦想,那就静心反思和修炼吧!
- apt-get dpkg 流程
- [BZOJ3926]ZJOI2015诸神眷顾的幻想乡|后缀自动机
- 程序员的量化交易之路(37)--Lean之DataStream数据流5
- 循环赛事日程表
- Cocos2d-3.x_在Lua中使用cjson库解析json