C++,判断五子棋胜败,有无好的方法

C++,判断五子棋输赢,有无好的方法
看到五子棋判断输赢的大多是遍历一类,感觉很麻烦。我觉得应该有个比较好的算法。比如用一个函数判断,一个子和邻近的一个字是否同色,如同色,则计数器+1。然后用棋子使用此函数迭代,如计数器满5,则能判断输赢。如棋盘下满,则平局。不过具体细节还没想好,希望各位大侠指点一二。
------解决方案--------------------
引用:
看到五子棋判断输赢的大多是遍历一类,感觉很麻烦。我觉得应该有个比较好的算法。比如用一个函数判断,一个子和邻近的一个字是否同色,如同色,则计数器+1。然后用棋子使用此函数迭代,如计数器满5,则能判断输赢。如棋盘下满,则平局。不过具体细节还没想好,希望各位大侠指点一二。


网上有很多这样的算法,查一下就好了。很容易的。C++,判断五子棋胜败,有无好的方法
------解决方案--------------------
http://blog.csdn.net/wojiushi3344/article/category/1150583
------解决方案--------------------
每落下一个子,
先向两边去寻找第一个不同色的棋子或者空的坐标,计算长度,>=5就赢了,否的话再找上下,还有斜的两个方向

这个算法应该不是很麻烦吧,写个函数就行了


------解决方案--------------------
棋子落入棋盘时,分别判断上下,左右,两条对角线四个方位上是否有5个相同的连续棋子,如果存在,游戏结束,如果不存在,继续。
------解决方案--------------------
可以逐子遍历,也可以在棋盘上-
------解决方案--------------------
/\遍历。
------解决方案--------------------
棋子落入棋盘时,判断以该子位置为中心的 该子的上下左右对角线 总共8个方向(分成4组,相对的2个方向为一组) 从中心向四周找 颜色相同+1(任意一组方向上加到5为止) 颜色不同就换方向