PlantomGo 概要设计
1. 协议说明:
引擎程序与裁判程序交互的信息主要以字符串的形式表达,主要借鉴六子棋的交互方
式:
平台程序返回给引擎的信息:
new black / white 开始新棋局,说明棋的颜色
black moved
white moved 平台程序发回传出的招法为合法
black illegal
white illegal 平台程序发回传出的招法为非法招法
black take num …
white take num … 平台程序返回提子信息(如果有的话),num 表示提子的个数;如果
是自己被提子,裁判程序还应返回提的各个子的位置,用 x y 表示坐标。
black passed
white passed 有一方 pass 时的信息。
result win / lost 对相应引擎返回结果
quit 关闭引擎程序
引擎程序对平台程序返回的信息:
move x y x,y 为棋的坐标,在 9*9 的棋盘上范围是都是 1..9。
passed 引擎 pass
2. 数据结构:
数据表示方式借鉴六子棋程序:
#define GRID_NUM 11 //棋盘行数,其中 1..9为棋的坐标,其他为边界
#define GRID_COUNT 81 //可放棋子总数
#define BLACK 1 //黑棋 黑白棋转换时 ,可对求异或
#define WHITE 2 //白棋
#define BORDER 3 //边界
#define NOSTONE 0 //空子无棋
#define MCMAX 10000 //蒙特卡洛次数
typedef struct _stoneposition
{