wjy1230 2016-10-26 12:52 采纳率: 100%
浏览 989
已采纳

请大家帮我看看这段代码什么意思(类似于五子棋判断五子连珠).谢谢了

最近准备开发一个彩球小游戏,找了一段代码参考了一下.其中fx,fy和cnt数组分别都是什么作用?

int FiveInLine(int x,int y) //x-r y-c
{
int fx[]={0,1,1,1,0,-1,-1,-1};
int fy[]={-1,-1,0,1,1,1,0,-1};
int cnt[8];
int i,j;
memset(cnt,0,sizeof(cnt));
for(i=0;i {
while(CheckIn(x+fx[i]*(cnt[i]+1),y+fy[i]*(cnt[i]+1)) && matrix[x+fx[i]*(cnt[i]+1)][y+fy[i]*(cnt[i]+1)]==matrix[x][y])
cnt[i]++;
}
for(i=0;i {
if(cnt[i]+cnt[i+4]+1>=5)
{
line[0].r=x;
line[0].c=y;
for(j=1;j<cnt[i]+1;j++)
{
line[j].r=x+fx[i]*j;
line[j].c=y+fy[i]*j;
}
for(j=cnt[i]+1;j<5;j++)
{
line[j].r=x+fx[i+4]*(j-cnt[i]);
line[j].c=y+fy[i+4]*(j-cnt[i]);
}
BallNum-=5;
return 1;
}
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • wjy1230 2016-10-27 09:59
    关注

    fx,fy中对应下标的元素构成一个二元组(fx,fy),表示即将进行判断的方向,如(1,1)表示右上,(-1,0)表示左。
    cnt数组存储每个方向上连珠的数目。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 51寻迹小车定点寻迹
  • ¥15 爬虫爬取网站的一些信息
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件