5子棋算法

今天看了五子棋算法,大概的算法就是从几个方向去计数,看得有点烦,因为条件太多,后来自己想可不可以简化一下,有了一个思路,不知道有没有盗了别人的版。权当记录下自己的思路,勿喷:

 

M*N 格子中,一般格子赋值为1,2, 如果还没有棋子的话值为0。 然后通过一个合法方向上计算连续数字的次数来判断胜利,这是一般的思路

 

但是我觉得判断的过程中有点烦,很多条件控制,一般一时还可能想不全。因为下一个格子可能会影响前面的计数,所以想了一个思路,就是格子的赋值不要弄成1和2 。。 例如1 , 6 还有无棋子情况为0  那么。在判断连续的五个棋子的时候,就可以转变成四个数字的算术和了,如果是5,那么这5个格子是一方赢,如果结果是30,那么一定是另一方赢,其他情况统统没有胜利,这样的话在循环判断的过程可能会简单点。

 

呵呵,班门弄斧了

posted @ 2010-12-15 11:39  andriod2012  阅读(275)  评论(0编辑  收藏  举报