• 大小: 9KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: 围棋  

资源简介

围棋源码 linux/UNIX 汉字编码GB2312

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
struct {
int xy;
} qipu[10000];
int qipu_len;
int g_flag[19][19];
int a[19][19];
int a_last[2][19][19];
int color = 1;
void print(int a[19][19]int color);
int XY;
char read_char[2];

int getchose(void)
{
char *c=read_char;
read(0c1);
if(c[0] ==‘q‘ || c[0]==‘Q‘)
return 5;
if(c[0]==‘\n‘||c[0]==‘\r‘)
return 0;
if(c[0]==‘\33‘) {
read(0c+11);
read(0c+11);
return c[1]-‘A‘+1;
}
read(0c+11);
return ((unsigned char)c[0]-128)*256+(unsigned char)c[1];
}

struct termios g_tcAttr;
int Set(int _fd )
{
struct termios tcAttr;

tcgetattr(_fd &tcAttr);
memcpy(&g_tcAttr &tcAttr sizeof(tcAttr));

// set local mode and enable receiver
tcAttr.c_cflag |= (CLOCAL|CREAD);

// set input options
tcAttr.c_iflag &= ~(IXON|IXOFF|IXANY);
tcAttr.c_iflag &= ~(INLCR|IGNCR|ICRNL);

// raw mode
tcAttr.c_lflag &= ~(ICANON|ECHO|ECHOE|ISIG);
//tcAttr.c_oflag &= ~OPOST;

///< valid param
tcflush(_fd TCIOFLUSH);
tcsetattr(_fd TCSANOW &tcAttr);

return 0;
}

static int legal(int xint y)
{
return x>=0&&x<19&&y>=0&&y<19;
}
char *qipu_file =NULL;

int _is_qi(int a[19][19]int flag[19][19]int xint y)
{
flag[x][y]=1;
if(legal(x-1y)&&a[x-1][y]==0) 
return 1;
if(legal(x+1y)&&a[x+1][y]==0) 
return 1;
if(legal(xy-1)&&a[x][y-1]==0) 
return 1;
if(legal(xy+1)&&a[x][y+1]==0) 
return 1;
if(legal(x-1y)&&a[x-1][y]==a[x][y]&&flag[x-1][y]==0)
if(_is_qi(aflagx-1y))
return 1;
if(legal(x+1y)&&a[x+1][y]==a[x][y]&&flag[x+1][y]==0)
if(_is_qi(aflagx+1y))
return 1;
if(legal(xy-1)&&a[x][y-1]==a[x][y]&&flag[x][y-1]==0)
if(_is_qi(aflagxy-1))
return 1;
if(legal(xy+1)&&a[x][y+1]==a[x][y]&&flag[x][y+1]==0)
if(_is_qi(aflagxy+1))
return 1;
return 0;
}

int is_qi(int a[19][19]int xint yint is_use_global_flag)
{
int flag[19][19];
if(a[x][y] == 0)
return -1;
if(is_use_global_flag) {
memset(g_flag0sizeof(g_flag));
return _is_qi(ag_flagxy);
} else {
memset(flag0sizeof(flag));
return _is_qi(aflagxy);
}
}

int cal(int xint y)
{
int ij;
int qi_selfqi_otherqi_tmp;
//fprintf(stderr“x=%dy=%d\n“xy);
if(!legal(xy)) {
fprintf(stderr“Zuobiao bu hefa!!!\n“);
return -1;
}
if(a[x][y] != 0) {
fprintf(stderr“you zi!!!!\n“);
return -1;
}
a[x][y] = color;
//print(acolor);
qi_self = is_qi(axy0);

qi_other = 1;
if(legal(x-1y)&&a[x-1][y]!=a[x][y]) {
qi_tmp = is_qi(ax-1y1);
if(qi_tmp == 0) {
//fprintf(stderr“%s:%d\n“__func____LINE__);
qi_other = 0;
for(i=0;i<19;i++)
for(j=0;j<19;j++)
a[i][j] = g_flag[i][j]?0:a[i][j];
}
}
//print(acolor);
if(legal(x+1y)&&a[x+1][y]!=a[x][y]) {
qi_tmp = is_qi(ax+1y1);
if(qi_tmp == 0) {
//fprintf(stderr“%s:%d\n“__func____LINE__);
qi_other = 0;
for(i=0;i<19;i++)
for(j=0;j<19;j++)
a[i][j] = g_flag[i][j]?0:a[i][j];
}
}
//print(acolor);
if(legal(xy-1)&&a[x][y-1]!

评论

共有 条评论