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;
}