You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"git.noahlan.cn/noahlan/ntool-biz/nkatago"
|
|
|
|
|
"git.noahlan.cn/noahlan/ntool-biz/nkatago/req"
|
|
|
|
|
"git.noahlan.cn/noahlan/ntool-biz/nkatago/resp"
|
|
|
|
|
"sync"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func testGTPEngine() {
|
|
|
|
|
engine, err := nkatago.NewGtpEngine(".\\run.bat")
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
r, err := engine.BoardSize(1)
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
fmt.Println(r)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testAnalEngine() {
|
|
|
|
|
eng, err := nkatago.NewAnalysisEngine(".\\run_analysis.bat")
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
|
|
|
|
|
|
wg.Add(1)
|
|
|
|
|
err = eng.QueryVersion(func(versionResp *resp.AnalQueryVersionResp) {
|
|
|
|
|
fmt.Println(fmt.Sprintf("查询到版本:git_hash:%s version:%s", versionResp.GitHash, versionResp.Version))
|
|
|
|
|
wg.Done()
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
queryReq := &req.AnalQueryReq{
|
|
|
|
|
Rules: "chinese",
|
|
|
|
|
Komi: 6.5,
|
|
|
|
|
BoardXSize: 9,
|
|
|
|
|
BoardYSize: 9,
|
|
|
|
|
AnalyzeTurns: []int32{2},
|
|
|
|
|
}
|
|
|
|
|
queryReq.AddInitialStone("B", "A1")
|
|
|
|
|
queryReq.AddInitialStone("B", "A2")
|
|
|
|
|
|
|
|
|
|
queryReq.AddMove("W", "B3")
|
|
|
|
|
queryReq.AddMove("B", "C5")
|
|
|
|
|
|
|
|
|
|
wg.Add(1)
|
|
|
|
|
err = eng.Query(queryReq, func(queryResp *resp.AnalQueryResp) {
|
|
|
|
|
moveInfo := queryResp.MoveInfos[0]
|
|
|
|
|
fmt.Println(fmt.Sprintf("当前玩家:%s, 建议移动:%s, 此步移动的建议后续: %v, 胜率:%f, 直觉优先级:%d 预测平均分: %f",
|
|
|
|
|
queryResp.RootInfo.CurrentPlayer,
|
|
|
|
|
|
|
|
|
|
moveInfo.Move,
|
|
|
|
|
moveInfo.PV,
|
|
|
|
|
moveInfo.WinRate,
|
|
|
|
|
moveInfo.Order,
|
|
|
|
|
moveInfo.ScoreMean,
|
|
|
|
|
))
|
|
|
|
|
wg.Done()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
wg.Wait()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
testGTPEngine()
|
|
|
|
|
//testAnalEngine()
|
|
|
|
|
}
|