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

📄 fyrad.c

📁 模仿FYRAD32编写的四子棋游戏
💻 C
📖 第 1 页 / 共 4 页
字号:
      if(cursory < -20 && cursory > -40)
         exit(0);
   }
   if(cursorx < -5 && cursorx > -80){
      if(cursory < -80 && cursory > -100)
       { 
        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();
        small_main();}

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

   }

      clearmain();

   getch();
}


int small_judge(int b[6][6],int i,int j){

   int a[9][12];
   int p,q;
   int c;


for(p=0;p<9;p++){
 for(q=0;q<12;q++){
   a[p][q]=0;
     }}

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

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

}

int small_judge1(int b[6][6],int i,int j){

   int a[9][12];
   int p,q;
   int c;


for(p=0;p<9;p++){
 for(q=0;q<12;q++){
   a[p][q]=0;
     }}

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

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

}


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


int aismall_search(int a[6][6]){
     int i,j,k;
     int b[9][12];

srand(time(NULL));

for(i=0;i<9;i++){
 for(j=0;j<12;j++){
   b[i][j]=0;
     }}

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

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


int small_panduan(int a[9][12],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 small_panduan1(int a[9][12],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;
}





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



int small_search(int a[6][6],int b){
  int i;
   for(i=5;i>=0;i--){
	 if(a[i][b]==0){
	  return i;}
	 }
      return -1;
   }



void small_put(int a[6][6],int c){

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


        small_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<6;i++){
       for(j=0;j<6;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==320)  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:\\small_hehe.txt","w"))==NULL)
          {exit(0);}

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

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

	      m=small_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=small_judge1(a,m,x);

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


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

	  if (z%2==0){

         if(c==3){n=aismall_search(a);}
         if(c==4){n=lowaismall_search();}

            m=small_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=small_judge(a,m,n);
          if(v==-1){
               flash(m,n,2);
                winregister(2);
                 v=specialkey();
                     small_main();     }


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

         if (z==36){winregister(3);
                     v=specialkey();
                       small_main(); }  
         
	  }
        }
small_main();
 
getch();
}


void small_put1(int a[6][6],int c){


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

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

	small_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<6;i++){
        for(j=0;j<6;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:\\small_hehe.txt","w"))==NULL)
          {exit(0);}

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

      if(code==RIGHT) {
           if(x==320)  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=small_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=small_judge1(a,m,x); 

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

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

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

          m=small_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=small_judge(a,m,n);
         if(v==-1){
           flashcolor(m,n,2);  
             winregister(2);
               v=specialkey();
                     small_main();     }
         
         z++;
	 x=120;
	 y=120;
	   }
          
         if (z==36){
            winregister(3);
                v=specialkey();
                    small_main(); }  

	  }
        }
small_main();
 
getch();
}




⌨️ 快捷键说明

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