资源简介
围棋源码 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]!
- 上一篇:单片机PID控制(C语言)
- 下一篇:商品库存管理系统 C++ MFC
相关资源
- 商品库存管理系统 C++ MFC
- 单片机PID控制(C语言)
- 安卓c语言开发SDL2+opengles
- Qt的纽带风格界面实现(Office Ribbon风
- 漂亮的仪表盘(widget.cpp)
- Qt画图工具源码(qgraphics draw)
- c++ 多功能计算器
- qt cmd实现ping
- C++17 In Detail
- linux ac108多麦方案驱动(ac108.c)
- 简易web服务器的设计与实现
- 基于单片机的交通灯设计.doc
- 人脸识别(opencv_facedetect_v4l2)
- gd32的单通道adc用dma采集
- vscode作为编辑器开发stm32f103c8
- usb之CDC(CDC_Standalone.rar)
- LC-PWM-RGB(RGB LED灯 调色调光器 PWM控制
- 《LINUX C编程从初学到精通》光盘源码
- SJA1000 CAN芯片驱动(SJA1000.c)
- 嵌入式QtC++编程课件
- 物联网GPS跟踪器demo程序
- 嵌入式c编程语言入门与深入.pdf58199
- C51单片机技术教程(304页)
- C语言模块化编程(我见过最好的)
- 基于esp32的摄像头采集图像代码
- C51单片机交通
- PCA9539驱动程序
- STM32连接EC20使用内置MQTT协议接入阿里
- TM4C123中文手册
- 单片机C语言实战开发108例
评论
共有 条评论