資源簡介
圍棋源碼 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;
/// 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]!
- 上一篇:單片機PID控制(C語言)
- 下一篇:商品庫存管理系統 C++ MFC
評論
共有 條評論