www.pudn.com > fivezhiqi.rar > fivezhiqi.c


/*五子棋程序*/  
/*ZJ*/  
#include"graphics.h"  
#include"stdio.h"  
#include"dos.h"  
#include"conio.h"  
#include"stdlib.h"  
#include"mima.c"  
#define KEY_E 18  
#define KEY_S 31  
#define KEY_D 32  
#define KEY_F 33  
#define KEY_SPACE 57  
#define KEY_UP 72  
#define KEY_LEFT 75  
#define KEY_DOWN 80  
#define KEY_RIGHT 77  
#define KEY_ENTER  28  
#define KEY_ESC 1  
#define N 5  
#define TRUE 1  
#define FALSE 0  
char sr[11];  
int s[40][40];  
int charge();  
int judge();  
FILE *fp;  
void hz2(int x,int y,int a,int col,int color,char *s)  
{ unsigned char qh,wh;  
  register i,j,m,n;  
  unsigned long offset;  
  unsigned char mask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};  
  char mat[32];  
  int row;  
  row=col;  
  while(*s)  
  { qh=*(s)-0xa0;  
    wh=*(s+1)-0xa0;  
    offset=(94*(qh-1)+(wh-1))*32L;  
    fseek(fp,offset,SEEK_SET);  
    fread(mat,32,1,fp);  
    for(i=0;i<16;i++)  
      for(n=0;n=0;i--){  
r=i;  
  for(k=0;k<36-i;k++,r++){  
m=k;n=0;h=r;  
for(t=0;t<5;t++){  
  if(s[m][h]==1) n++;  
  m++;h++;  
}  
if(n==5) return 1;  
m=k;h=r;n=0;  
for(t=0;t<5;t++){  
  if(s[m][h]==2) n++;  
  m++;h++;  
}  
if(n==5) return 2;  
  }  
  }  
  for(i=35;i>0;i--){  
r=i;  
  for(k=0;k<36-i;k++,r++){  
m=k;n=0;h=r;  
for(t=0;t<5;t++){  
  if(s[h][m]==1) n++;  
  m++;h++;  
}  
if(n==5) return 1;  
m=k;h=r;n=0;  
for(t=0;t<5;t++){  
  if(s[h][m]==2) n++;  
  m++;h++;  
}  
if(n==5) return 2;  
}  
  }  
  for(i=4;i<40;i++){  
r=i;  
  for(k=0;k<=i-4;k++,r--){  
m=k;h=r;n=0;  
for(t=0;t<5;t++){  
  if(s[m][h]==1) n++;  
  m++;h--;  
}  
if(n==5) return 1;  
m=k;h=r;n=0;  
for(t=0;t<5;t++){  
  if(s[m][h]==2) n++;  
  m++;h--;  
}  
if(n==5) return 2;  
}  
  }  
  for(i=35;i>0;i--){  
r=i;  
  for(k=39;k>=i+4;k--,r++){  
m=k;h=r;n=0;  
for(t=0;t<5;t++){  
  if(s[h][m]==1) n++;  
  h++;m--;  
}  
if(n==5) return 1;  
m=k;h=r;n=0;  
for(t=0;t<5;t++){  
  if(s[h][m]==2) n++;  
  h++;m--;  
}  
if(n==5) return 2;  
  }  
  }  
  return 3;  
}  
int get_key()  
{ union REGS rg;  
  rg.h.ah=0;  
  int86(0x16,&rg,&rg);  
  return rg.h.ah;  
}