用C++设计五子棋游戏,如何判断输赢拜托各位了3Q

就像楼上说的,不过不用整个遍历,五个走一条的情况最多也就被包含在落子点周围上下坐右各4格的9X9=81的平面上,如果遍历,那么搜索这个区域足够了,而事实上,这仍然工作量巨大。其实你需要判断的只有以落子为中心,4个方向上连通的子的个数而已,也就是水平向竖直向以及夹在中间的两个倾斜45度的方向。你可以先确定落子点,然后向某个既定的方向后退,直到无同色子,然后再向反方向前进计数至无同色子,如果是瞎玩玩的,也就是连6个7个也算赢的,那么>=5就搞定,如果是正规的,有长连禁手的,那么连多了判输,其他的禁手以此方法判断也不会太复杂,并且像双三禁手这样的东西几乎和判赢判输没有区别,两个bool值一&就可以处理完,算法如此,依靠二维数组实现的话实现难度也相当之低了。

免责声明:本站发布的游戏攻略(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!