void judgewho(int x,int y) { if(flag==1) draw_circle(x,y,BLUE); if(flag==2) draw_circle(x,y,WHITE); }
int judgeresult(int x,int y) { int j,k,n1,n2; while(1) { n1=0; n2=0; /* 水平向左数 */ for(j=x,k=y;j>=1;j--) { if(box[j][k]==flag) n1++; else break; } /* 水平向右数 */ for(j=x,k=y;j<=18;j++) { if(box[j][k]==flag) n2++; else break; } if(n1+n2-1>=5) { return(1); break; } /* 垂直向上数 */
n1=0; n2=0;
for(j=x,k=y;k>=1;k--) { if(box[j][k]==flag) n1++; else break; } /*
垂直向下数 */ for(j=x,k=y;k<=18;k++) { if(box[j][k]==flag) n2++; else break; } if(n1+n2-1>=5) { return(1); break; } /* 向左上方数 */ n1=0; n2=0; for(j=x,k=y;j>=1,k>=1;j--,k--) { if(box[j][k]==flag) n1++; else break; } /*
向右下方数 */
for(j=x,k=y;j<=18,k<=18;j++,k++) { if(box[j][k]==flag) n2++; else
break; } if(n1+n2-1>=5) { return(1); break; } /* 向右上方数 */ n1=0; n2=0; for(j=x,k=y;j<=18,k>=1;j++,k--) { if(box[j][k]==flag) n1++; else break; } /* 向左下方数 */ for(j=x,k=y;j>=1,k<=18;j--,k++) { if(box[j][k]==flag) n2++; else break; } if(n1+n2-1>=5) { return(1); break; } return(0); break; } }
void main() { int gdriver=VGA,gmode=VGAHI; clrscr(); attention();
} initgraph(&gdriver,&gmode,\flag=1;
draw_box(); do { step_x=0; step_y=0; judgewho(step_x-1,step_y-1); do { while(bioskey(1)==0); key=bioskey(0); judgekey(); } while(key!=SPACE&&key!=ESC); } while(key!=ESC); closegraph();
相关推荐: