package req // //import ( // "encoding/json" // "git.noahlan.cn/noahlan/ntool/nsys/cmdn" //) // //type Stone struct { // Player string // 玩家 "B" / "W" // Location string // "C4" GTP标准协议,或 "CC" 行列协议 //} // //func (s Stone) MarshalJSON() ([]byte, error) { // ret := []string{s.Player, s.Location} // return json.Marshal(ret) //} // //var _ cmdn.ICommand = (*AnalQueryReq)(nil) // //type AnalQueryReq struct { // ID string `json:"id"` // ID // Moves []Stone `json:"moves"` // moves // InitialStones []Stone `json:"initialStones,omitempty,optional"` // 初始化棋子(让子棋,棋谱等等) // Rules string `json:"rules"` // 规则, chinese / japanese / tromp-taylor .etc... // Komi float32 `json:"komi"` // 贴目,中国规则一般7.5目 // BoardXSize int64 `json:"boardXSize"` // 棋盘X大小 // BoardYSize int64 `json:"boardYSize"` // 棋盘Y大小 // AnalyzeTurns []int32 `json:"analyzeTurns,omitempty,optional"` // 需要分析的回合数,与moves对应,若不指定,则分析最后一回合 // InitialPlayer string `json:"initialPlayer,omitempty,optional"` // 指定第一手的玩家 "B" / "W",当moves为空时很有用 // /// .etc... //} // //func (r *AnalQueryReq) MessageID() string { // return r.ID //} // //func (r *AnalQueryReq) AddMove(player, location string) { // r.Moves = append(r.Moves, Stone{Player: player, Location: location}) //} // //func (r *AnalQueryReq) AddInitialStone(player, location string) { // r.InitialStones = append(r.InitialStones, Stone{Player: player, Location: location}) //} // //var _ cmdn.ICommand = (*AnalQueryActionReq)(nil) // //const ( // AnalActionQueryVersion = "query_version" // AnalActionClearCache = "clear_cache" // AnalActionTerminate = "terminate" // AnalActionTerminateAll = "terminate_all" //) // //type AnalQueryActionReq struct { // ID string `json:"id"` // ID // Action string `json:"action"` // 查询动作 // // // terminate // TerminateId string `json:"terminateId,omitempty,optional"` // // terminate | terminate_all // TurnNumbers []int32 `json:"turnNumbers,omitempty,optional"` //} // //func (r *AnalQueryActionReq) MessageID() string { // return r.ID //}