在我的五子棋程序中,主要的基本结构就是杨老师提供的基础程序。通过对棋盘上每一个可下棋的格子,和周围棋子形成的形式的判定,为这个格子生成一个权重,再通过对比权重去得到对比当前局势利润最高的棋子落点,而这个棋子落点,就是我们程序将要落子的点。相对于最基础的程序,我的程序在杨老师五子棋专项课的教导中增加了对斜向下棋和跳格下棋权重的更细致设定,使得我的程序棋力增长了许多。一开始,改变跳格下棋权重的问题,困扰了我许久,后来通过在侦测函数RT_get_flag_beads所return的countlist中append了关于跳格下棋的数字(1代表跳格了,0代表没有),来让权重计算器相应的减少跳格棋的权重,我对各个形式的权重是这样的:比如在斜着下与横着下都可以形成活三的时候,优先选择斜着下、在跳格下和相邻下都可以形成双活二的情况下,优先选择相邻下。在赛前一天,我紧急增加了程序的攻击性,在可以拦住对手或可以构筑进攻的情况下,优先选择自我进攻,这样我的程序相对于其他的均衡性程序来说会有更大的胜算(虽然在比赛中没有什么用)这就是我对我五子棋程序的算法理解。 哎呀毕竟第一次参赛,这样的名次应该挺正常的吧 
|