| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 426 人关注过本帖
标题:请问还有更好的五子棋判断方法吗
只看楼主 加入收藏
伍初
Rank: 2
等 级:论坛游民
帖 子:16
专家分:22
注 册:2011-5-15
结帖率:0
收藏
 问题点数:0 回复次数:3 
请问还有更好的五子棋判断方法吗
int CMywuziqi1::Judgment()
{
  UINT count1=0,count2=0;
  for (int i=0;i<15;i++)
  {   if(count1>=5||count2>=5)
      break;
      for (int j=0;j<15;j++)
  {
       if(Board[i][j]==1)
       { count1++;count2=0;}
       if(Board[i][j]==2)
        { count2++;count1=0;}
       if(count1>=5||count2>=5)
         break;
       if(Board[i][j]==0)
       {count2=0;count1=0;}}
}
/////////////////////////

if(count1<5&&count2<5)
{     count1=0;count2=0;
       for (int j=0;j<15;j++)
      {    if(count1>=5||count2>=5)break;
           for (int i=0;i<15;i++)
          {
            if(Board[i][j]==1)
            {
            count1++;count2=0;
            }
            if(Board[i][j]==2)
            {
             count2++;count1=0;
            }
           if(count1>=5||count2>=5)
            break;
           if(Board[i][j]==0)
           {
            count2=0;count1=0;
}}}}
////////////////////////////////

if(count1<5&&count2<5)
{count1=0;count2=0;
      for(int i=4;i<15;i++)
      {if(count1>=5||count2>=5)break;
           for(int j=0,k=i;k>=0,j<=i;j++,k--)
           {
           if(Board[j][k]==1)
           {
             count1++;
              count2=0;
            }
            if(Board[j][k]==2)
            {
             count2++;
             count1=0;
             }
            if(count1>=5||count2>=5)
            break;
            if(Board[j][k]==0)
            {
             count2=0;
             count1=0;
}}}}
///////////////////////////////

if(count1<5&&count2<5)
{count1=0;count2=0;
             for(int i=0;i<15;i++)
            {if(count1>=5||count2>=5) break;
                 for(int j=i,k=14;j<15;j++,k--)
                {
                        if(Board[j][k]==1)
                        { count1++;count2=0;}
                        if(Board[j][k]==2)
                        { count2++;count1=0;}
                        if(count1>=5||count2>=5)
                             break;
                        if(Board[j][k]==0)
                         {count2=0;count1=0;
}}}}
///////////////////////////////
if(count1<5&&count2<5)
{count1=0;count2=0;
                      for(int i=10;i>=0;i--)
                      {if(count1>=5||count2>=5)
                         break;
                              for(int j=0,k=i;j<15,k<15;j++,k++)
                             {
                                     if(Board[k][j]==1)
                                       {
                                           count1++;count2=0;
                                        }
                                      if(Board[k][j]==2)
                                      {
                                           count2++;count1=0;
                                        }
                                       if(count1>=5||count2>=5)
                                          break;
                                       if(Board[k][j]==0)
                                       {
                                         count2=0;count1=0;
}}}}
//////////////////////////
if(count1<5&&count2<5)
{count1=0;count2=0;
            for(int i=0;i<15;i++)
           {if(count1>=5||count2>=5)
                 break;
                     for(int k=0,j=i;j<15;j++,k++)
                    {
                      if(Board[k][j]==1)
                       {
                       count1++;count2=0;
                        }
                       if(Board[k][j]==2)
                        {
                        count2++;count1=0;
                         }
                         if(count1>=5||count2>=5)
                              break;
                        if(Board[k][j]==0)
                         {
                         count2=0;count1=0;
}}}}
if(count1>=5)
return 1;
if(count2>=5)
return 2;
if(count1<5&&count2<5)
return 0;
}
搜索更多相关主题的帖子: 五子棋 
2011-09-05 17:58
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
你的代码风格太不好了,很少人耐心看的。
五子棋代码 csdn上面有很多,去搜索看看就能找到

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2011-09-06 11:56
popcorn1429
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2011-9-8
收藏
得分:0 
这个写法实在是吓人,我第一次也是这么写的。
使用结构体会方便很多的。
还有,每次都遍历整个数组实在很低效率。
每次只要把玩家刚输入的坐标作为基础进行8个方向的判断即可。
2011-09-08 21:58
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
直接说你的判定方法
2011-09-12 08:16
快速回复:请问还有更好的五子棋判断方法吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020030 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved