⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fyrad.c

📁 模仿FYRAD32编写的四子棋游戏
💻 C
📖 第 1 页 / 共 4 页
字号:
       { small_main();
        }
      if(cursory < -60 && cursory > -80)
         {
         if(a==1)  { return 2; }
         if(a==2)  { return 1; }
         }
      if(cursory < -40 && cursory > -60)
         {
         if(c==3)  { return 4; }
         if(c==4)  { return 3; }
         }
   }
   if(cursorx < 125 && cursorx > 10){
      if(cursory < -80 && cursory > -100)
       { help();
        code=specialkey();
        main();}

      if(cursory < -60 && cursory > -80)
        { shortkey();
        code=specialkey();
        main();}

   }

      clearmain();

   getch();
}


int judge(int b[8][8],int i,int j){

   int a[11][14];
   int p,q;
   int c;


for(p=0;p<11;p++){
 for(q=0;q<14;q++){
   a[p][q]=0;
     }}

for(p=0;p<8;p++){
 for(q=0;q<8;q++){
   a[p][q+3]=b[p][q];
     }}

c=panduan(a,i,j);
return c;

}

int judge1(int b[8][8],int i,int j){

   int a[11][14];
   int p,q;
   int c;


for(p=0;p<11;p++){
 for(q=0;q<14;q++){
   a[p][q]=0;
     }}

for(p=0;p<8;p++){
 for(q=0;q<8;q++){
   a[p][q+3]=b[p][q];
     }}

c=panduan1(a,i,j);
return c;

}


int lowaisearch(void){
    srand(time(NULL));
    return (rand()%8+3)*40;}


int aisearch(int a[8][8]){
     int i,j,k;
     int b[11][14];

srand(time(NULL));

for(i=0;i<11;i++){
 for(j=0;j<14;j++){
   b[i][j]=0;
     }}

for(i=0;i<8;i++){
 for(j=0;j<8;j++){
   b[i][j+3]=a[i][j];
     }}

  for(i=0;i<8;i++){
   j=search(a,i);
   if(j<=-1){continue;}
   k=panduan(b,j,i);
   if(k==-1) {return (i+3)*40;}
   }
  for(i=0;i<8;i++){
   j=search(a,i);
   if(j<=-1){continue;}
   k=panduan(b,j,i);
   if(k==1) {return (i+3)*40;}
   }
return (rand()%8+3)*40;
}


int panduan(int a[11][14],int i,int j){

  j=j+3;

  if(a[i+1][j]+a[i+2][j]+a[i+3][j]==-3){return -1;}

  if(a[i][j+1]+a[i][j+2]+a[i][j+3]==-3){return -1;}
  if(a[i][j-1]+a[i][j-2]+a[i][j-3]==-3){return -1;}
  if(a[i][j-1]+a[i][j+1]+a[i][j+2]==-3){return -1;}
  if(a[i][j-1]+a[i][j-2]+a[i][j+1]==-3){return -1;}

  if(a[i+1][j+1]+a[i+2][j+2]+a[i+3][j+3]==-3){return -1;}
  if(a[i+1][j+1]+a[i+2][j+2]+a[i-1][j-1]==-3){return -1;}
  if(a[i+1][j+1]+a[i-1][j-1]+a[i-2][j-2]==-3){return -1;}
  if(a[i-1][j-1]+a[i-2][j-2]+a[i-3][j-3]==-3){return -1;}

  if(a[i+1][j-1]+a[i+2][j-2]+a[i+3][j-3]==-3){return -1;}
  if(a[i+1][j-1]+a[i+2][j-2]+a[i-1][j+1]==-3){return -1;}
  if(a[i+1][j-1]+a[i-1][j+1]+a[i-2][j+2]==-3){return -1;}
  if(a[i-1][j+1]+a[i-2][j+2]+a[i-3][j+3]==-3){return -1;}

  if(a[i+1][j]+a[i+2][j]+a[i+3][j]==3){return 1;}

  if(a[i][j+1]+a[i][j+2]+a[i][j+3]==3){return 1;}
  if(a[i][j-1]+a[i][j-2]+a[i][j-3]==3){return 1;}
  if(a[i][j-1]+a[i][j+1]+a[i][j+2]==3){return 1;}
  if(a[i][j-1]+a[i][j-2]+a[i][j+1]==3){return 1;}

  if(a[i+1][j+1]+a[i+2][j+2]+a[i+3][j+3]==3){return 1;}
  if(a[i+1][j+1]+a[i+2][j+2]+a[i-1][j-1]==3){return 1;}
  if(a[i+1][j+1]+a[i-1][j-1]+a[i-2][j-2]==3){return 1;}
  if(a[i-1][j-1]+a[i-2][j-2]+a[i-3][j-3]==3){return 1;}

  if(a[i+1][j-1]+a[i+2][j-2]+a[i+3][j-3]==3){return 1;}
  if(a[i+1][j-1]+a[i+2][j-2]+a[i-1][j+1]==3){return 1;}
  if(a[i+1][j-1]+a[i-1][j+1]+a[i-2][j+2]==3){return 1;}
  if(a[i-1][j+1]+a[i-2][j+2]+a[i-3][j+3]==3){return 1;}
return 0;
}


int panduan1(int a[11][14],int i,int j){

  j=j+3;



  if(a[i+1][j]+a[i+2][j]+a[i+3][j]==3){return 1;}

  if(a[i][j+1]+a[i][j+2]+a[i][j+3]==3){return 1;}
  if(a[i][j-1]+a[i][j-2]+a[i][j-3]==3){return 1;}
  if(a[i][j-1]+a[i][j+1]+a[i][j+2]==3){return 1;}
  if(a[i][j-1]+a[i][j-2]+a[i][j+1]==3){return 1;}

  if(a[i+1][j+1]+a[i+2][j+2]+a[i+3][j+3]==3){return 1;}
  if(a[i+1][j+1]+a[i+2][j+2]+a[i-1][j-1]==3){return 1;}
  if(a[i+1][j+1]+a[i-1][j-1]+a[i-2][j-2]==3){return 1;}
  if(a[i-1][j-1]+a[i-2][j-2]+a[i-3][j-3]==3){return 1;}

  if(a[i+1][j-1]+a[i+2][j-2]+a[i+3][j-3]==3){return 1;}
  if(a[i+1][j-1]+a[i+2][j-2]+a[i-1][j+1]==3){return 1;}
  if(a[i+1][j-1]+a[i-1][j+1]+a[i-2][j+2]==3){return 1;}
  if(a[i-1][j+1]+a[i-2][j+2]+a[i-3][j+3]==3){return 1;}


return 0;
}






int specialkey()
{
	int key;
	while (bioskey(1)==0);
	key=bioskey(0);
	key=key&0xff?key&0xff:key>>8;
	return(key);
}








void Draw(void){
	  int i,j;
	 setviewport(50,50,474,475,1);
	 for(i=100;i<=420;i+=40){
	 setcolor(BLUE);
	 line(100,i,420,i);
	 setcolor(BLUE);
	 line(i,100,i,420);
	 for(j=100;j<420;j+=40){
	 circle(i+20,j+20,15);
	 setfillstyle(SOLID_FILL,BLACK);
	 floodfill(i+20,j+20,BLUE);
	 }
	 }
	 }



int search(int a[8][8],int b){
  int i;
   for(i=7;i>=0;i--){
	 if(a[i][b]==0){
	  return i;}
	 }
      return -1;
   }



void put(int a[8][8],int c){

         int code;
	 int z;
	 int x,y;
	 int m,n;
	 int v;
         int i,j;
         x=120;
	 y=120;
	 z=1;


        Draw();
        if(c==4){
           setcolor(BLUE);
           rectangle(100,20,420,60);
           setfillstyle(SOLID_FILL,BLACK);
           floodfill(120,40,BLUE);
  
           setcolor(11);
           settextstyle(2,0,10);
           outtextxy(170,20,"Low-Level");}
         if(c==3){
           setcolor(BLUE);
           rectangle(100,20,420,60);
           setfillstyle(SOLID_FILL,BLACK);
           floodfill(120,40,BLUE);
  
           setcolor(13);
           settextstyle(2,0,10);
           outtextxy(170,15,"High-Level");}
        

     for(i=0;i<8;i++){
       for(j=0;j<8;j++){
        if(a[i][j]==1){setfillstyle(SOLID_FILL,RED);
	                 floodfill((j+3)*40,(i+3)*40,BLUE);}
        if(a[i][j]==-1){setfillstyle(SOLID_FILL,YELLOW);
	                 floodfill((j+3)*40,(i+3)*40,BLUE);}
         
           }}




   while(code!=ESC){

	code=specialkey();

      if(code==RIGHT) {
         if(x==400)  continue;
	 setcolor(BLUE);
	 circle(x+40,y,16);
	 setcolor(BLACK);
	 circle(x,y,16);
	 x=x+40;  }

      if(code==LEFT) {
         if(x==120)  continue;
	 setcolor(BLUE);
	 circle(x-40,y,16);
	 setcolor(BLACK);
	 circle(x,y,16);
	 x=x-40;  }


       if(code==DOWN){
           FILE*fp;

           if((fp=fopen("c:\\hehe.txt","w"))==NULL)
          {exit(0);}

          for(i=0;i<8;i++){
             for(j=0;j<8;j++){
                fprintf(fp,"%5d",a[i][j]);
                            }}
                fclose(fp);
                main();
              }

	if(code==ENTER) {
            
	    if ( z%2==1){

	      m=search(a,x/40-3);
              if(m==-1){continue;}
	      m=(m+3)*40;

              setcolor(BLACK);
	      circle(x,y,16);

	      setfillstyle(SOLID_FILL,RED);
	      floodfill(x,m,BLUE);
              a[m/40-3][x/40-3]=1;
              m=m/40-3;  x=x/40-3;
              v=judge1(a,m,x);

               if(v==1){
                   flash(m,x,1);
                    winregister(1);
                     v=specialkey();
                     main();     }


               z++;
	       x=120;
	       y=120;    }

	  if (z%2==0){

         if(c==3){n=aisearch(a);}
         if(c==4){n=lowaisearch();}

            m=search(a,n/40-3);

            m=(m+3)*40;


	   setfillstyle(SOLID_FILL,YELLOW);
	   floodfill(n,m,BLUE);

           a[m/40-3][n/40-3]=-1;
          m=m/40-3;  n=n/40-3;
          v=judge(a,m,n);
          if(v==-1){
               flash(m,n,2);
                winregister(2);
                 v=specialkey();
                     main();     }


          z++;
	  x=120;
	  y=120;
	   }

         if (z==64){winregister(3);
                     v=specialkey();
                       main(); }  
         
	  }
        }
main();
 
getch();
}


void put1(int a[8][8],int c){


	int code;
	int z;
        int x,y;
	int m,n;
	int v;
        int i,j;

        x=120;
        y=120;
	z=1;

	Draw();

        if(c==4){
           setcolor(BLUE);
           rectangle(100,20,420,60);
           setfillstyle(SOLID_FILL,BLACK);
           floodfill(120,40,BLUE);
  
           setcolor(11);
           settextstyle(2,0,10);
           outtextxy(170,20,"Low-Level");}
       if(c==3){
           setcolor(BLUE);
           rectangle(100,20,420,60);
           setfillstyle(SOLID_FILL,BLACK);
           floodfill(120,40,BLUE);
  
           setcolor(13);
           settextstyle(2,0,10);
           outtextxy(170,15,"High-Level");}

       for(i=0;i<8;i++){
        for(j=0;j<8;j++){
         if(a[i][j]==1){setfillstyle(SOLID_FILL,WHITE);
	                 floodfill((j+3)*40,(i+3)*40,BLUE);}
         if(a[i][j]==-1){setfillstyle(SOLID_FILL,LIGHTRED);
	                  floodfill((j+3)*40,(i+3)*40,BLUE);}
         
           }}

	

   while(code!=ESC){

	code=specialkey();

         if(code==DOWN){
           FILE*fp;

           if((fp=fopen("c:\\hehe.txt","w"))==NULL)
          {exit(0);}

          for(i=0;i<8;i++){
             for(j=0;j<8;j++){
                fprintf(fp,"%5d",a[i][j]);
                            }}
                fclose(fp);
                main();
              }

      if(code==RIGHT) {
           if(x==400)  continue;
	   setcolor(BLUE);
	   circle(x+40,y,16);
	   setcolor(BLACK);
	   circle(x,y,16);
	   x=x+40;  }

      if(code==LEFT) {
         if(x==120)  continue;
	 setcolor(BLUE);
	 circle(x-40,y,16);
	 setcolor(BLACK);
	 circle(x,y,16);
	 x=x-40;  }


	 if(code==ENTER) {
            
	   if (z%2==1){
           
	   m=search(a,x/40-3);
           if(m==-1){continue;}
	   m=(m+3)*40;
           
            setcolor(BLACK);
	   circle(x,y,16);
           
	    setfillstyle(SOLID_FILL,WHITE);
	    floodfill(x,m,BLUE);   
            a[m/40-3][x/40-3]=1; 
            m=m/40-3;  x=x/40-3;
            v=judge1(a,m,x); 

             if(v==1){
                flashcolor(m,x,1);
                  winregister(1);
                     v=specialkey();
                     main();     }
        

              
              z++;
	      x=120;
	      y=120;    }

	 if (z%2==0){
         
         if(c==3){n=aisearch(a);}
         if(c==4){n=lowaisearch();}

          m=search(a,n/40-3);

          m=(m+3)*40;


	 setfillstyle(SOLID_FILL,LIGHTRED);
	 floodfill(n,m,BLUE); 

         a[m/40-3][n/40-3]=-1; 
         m=m/40-3;  n=n/40-3;
         v=judge(a,m,n);
         if(v==-1){
           flashcolor(m,n,2);  
             winregister(2);
               v=specialkey();
                     main();     }
         
         z++;
	 x=120;
	 y=120;
	   }
          
         if (z==64){
            winregister(3);
                v=specialkey();
                     main(); }  

	  }
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -