久棋交互规范

久棋前后端交互规范,应用于人机对弈,机机对弈。

前后端均采用json数据格式,目的是为了后面的机机对弈能够更好交互。

前端
只看格式在这:
1
2
3
4
5
6
7
{
"board_size":6, // 棋盘大小
"moves":[['A1'],...[['A1','A2'],['B1']]],//每一步的步骤都包含,所有的历史记录.
"stage":0, // 由0开始表第一阶段
"move":[],//['A1'] 表示布子阶段 [['A1','A2'],['B1']] 表示A1走到A2并且乘方吃了B1,[['A1','A2','A3'],['B1','D2']] 表示A1--->A2--->A3,并且乘方吃子B1,D2
"board":[] // 棋盘,是一个二维数组,请求后端时会将棋盘数字化,0表示空,1表示黑棋,2表示白棋
}
详细版:

前端请求将发送5个字段,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

```moves```表示历史所有走子的数据,其数据格式为```[['A1'],[['A1','A2'],['B1']]]```,前面单括号为布子阶段的数据,后面一个大括号表示走子阶段(飞子阶段也适用)的数据格式,其包含两部分,第一部分为第二阶段的走子的路径,第二部分为乘方后得到的棋子坐标,注意若没有乘方,应表示为```[['A1','A2'],[]]```这种格式,用一个空的括号来占位,

```stage``` 表示的是阶段,!!!注意```stage:0```表示第一阶段,

```move``` 表示本次的走子路径or步子位置,```['A1']``` 表示布子阶段 ```[['A1','A2'],['B1']] ```表示```A1```走到```A2```并且乘方吃了```B1```,```[['A1','A2','A3'],['B1','D2']] ```表示```A1--->A2--->A3```,并且乘方吃子```B1```,```D2```.

```board```表示棋盘,用二维数组表示并维护,请求时会附带,0表示空,1表示黑棋,2表示白棋。

##### 后端返回:

```json
{
"board_size":6// 棋盘大小
"bot_move":[],// 本次返回的走子路径or布子位置
"board":[] // 二维数组,应与前端的请求棋盘位置和棋子类型一致。
}

注意!!!关于棋盘的交互:

历史原因,我的这个是按列排布的。请看:

棋盘数组

因为人是黑色棋子,可以看到如果没有白色棋子,将数组的每一行看成棋盘的每一列,就能对上了。

故后端在进行返回时,也应该返回右图的格式。如我下了黑色,后端返回白色棋子,其在数组中的位置为:

返回数组

对于只做算法的同学,还请自己提供后端接口和解析数据,若觉得自己的机器人厉害or写好接口了,可以让我来人机测试。

!!! 后续有补充可以再添加。尽量不要加啥字段,因为改代码很费时间。

​ ———————Powered by wangxu————

philxling wechat
ex. subscribe to my blog by scanning my public wechat account
-------------本文结束感谢您的阅读-------------
谢谢你给我糖吃!!!
0%