找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 1319|回复: 3

参赛程序思路总结

[复制链接]

1

主题

0

回帖

7

积分

注册会员

积分
7
发表于 2-10-2025 21:25:14 | 显示全部楼层 |阅读模式
首先,把程序的思路credit给黄鸿睿大佬,我的代码的大框架是基于他当时在五子棋两天专项课中向我们介绍的。

代码里主要用到的就是搜索(虽然时间不多所以很多地方就没有做优化了所以深度很浅只有3层),alpha beta剪枝(不得不说真的还是很好用,跳过了很多不必要的计算和比较,可以让我的程序每次落子做决策时不超过刘老师定的5s。当时没写这一段的时候深度就只能到2层,对于棋力提升没什么太大意义)。

在每层的进行搜索的时候搜索宽度可以拉大。大概是因为我的深度只有3层,宽度增加1并不太会影响程序落子速度,但的确会提升棋力(在第二次模拟赛后主要做的修改就是这个加小小调了一点估值的参数,可以让改后的程序执白30-40手左右打过以前那版程序。如果发现深度加了会超时的话可以试试加宽度)。

个人在写的时候就是让黑棋重进攻白棋重防守一点,因为白棋本来就稍微劣势一点,所以在各个落子位置价值评估函数里面黑白子分别的参数有一些区别。

我没有去写特定的开局方式,但是开局时我把活二的价值有调高(高于眠三和眠四),感觉这个对于白棋特别会有用,不是一直处于防守的状态。

然后,大力推荐黄鸿睿大佬的字符串方式,的确逻辑会清楚很多。去csdn也有类似的文章讲解,但是还是自己推double check一下。(那时候根据我csdn给出的可能性写发现会有几种考虑不太全面的)。

最后,几位老选手的程序真的都很牛,那时候上完专项课的时候也在想是不是怎么也打不赢(虽然也的确没有打赢)。但刘老师也设计了新手轮,在写五子棋代码的时候也会锻炼很多,无论是写代码还是网上查资料并汲取内化的能力。所以,还是很推荐可以专门给一段时间写写的,至少有了最初的版本才会更有动力去改进和迭代。

27

主题

73

回帖

420

积分

超级版主

积分
420
发表于 2-11-2025 08:22:31 | 显示全部楼层
爆赞你的最后一句话啊!

8

主题

14

回帖

77

积分

版主

积分
77
发表于 2-11-2025 14:25:40 | 显示全部楼层
哥哥姐姐们 小的叫黄泓睿

8

主题

14

回帖

77

积分

版主

积分
77
发表于 2-11-2025 14:27:53 | 显示全部楼层
另,20年参赛时某人思路和楼主思路很接近,csdn有位po主是用隔断法来判断棋型的,之前有参考过,容易出现漏判的问题,很高兴可以帮到楼主!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 4-12-2025 09:58 , Processed in 0.059663 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表