架构: - IPdkBot 接口:外挂接入点,与核心逻辑解耦 - PdkBotView:只传自己手牌+公开信息(MaxPlayCard/ShenYuCard/Rule) 不暴露其他玩家手牌——模拟真人视角 - PdkBot:score-based 最优策略 评分维度:直接获胜>>对手威胁>>牌效率>>炸弹保留>>先手权>>黑桃3 对接: - PdkGameMain.BotMode=true 启用 - WaitWanJiaShuRu中BuildBotView→bot.DecidePlay/DecideBaoZhuang - GameBaoZhuang解除WhoPlay=GetNextPos注释以支持逐人轮询 - SetFalseOperation加DeskGameDo null守卫 文件: - PdkFriendServer/Logic/PdkBot.cs(核心机器人) - PdkFriendServer/Logic/PdkGameMain.cs(BotMode+对接) - hjha-console/Program.cs(main.BotMode=true启动)
1 line
2.4 KiB
Plaintext
1 line
2.4 KiB
Plaintext
{"CardPack":{"Cards":[{"CardInfos":[{"Flower":1,"Num":1,"ID":1,"GameNum":14},{"Flower":1,"Num":13,"ID":13,"GameNum":13},{"Flower":4,"Num":13,"ID":52,"GameNum":13},{"Flower":1,"Num":12,"ID":12,"GameNum":12},{"Flower":4,"Num":11,"ID":50,"GameNum":11},{"Flower":4,"Num":10,"ID":49,"GameNum":10},{"Flower":1,"Num":9,"ID":9,"GameNum":9},{"Flower":3,"Num":9,"GameState":1,"ID":35,"GameNum":9},{"Flower":4,"Num":9,"GameState":1,"ID":48,"GameNum":9},{"Flower":3,"Num":8,"GameState":1,"ID":34,"GameNum":8},{"Flower":2,"Num":7,"GameState":1,"ID":20,"GameNum":7},{"Flower":4,"Num":6,"GameState":1,"ID":45,"GameNum":6},{"Flower":4,"Num":5,"GameState":1,"ID":44,"GameNum":5},{"Flower":3,"Num":4,"GameState":1,"ID":30,"GameNum":4},{"Flower":2,"Num":3,"ID":16,"GameNum":3},{"Flower":4,"Num":3,"ID":42,"GameNum":3}]},{"CardInfos":[{"Flower":3,"Num":1,"ID":27,"GameNum":14},{"Flower":3,"Num":13,"ID":39,"GameNum":13},{"Flower":4,"Num":12,"ID":51,"GameNum":12},{"Flower":2,"Num":11,"ID":24,"GameNum":11},{"Flower":3,"Num":11,"ID":37,"GameNum":11},{"Flower":1,"Num":10,"ID":10,"GameNum":10},{"Flower":1,"Num":8,"GameState":1,"ID":8,"GameNum":8},{"Flower":2,"Num":8,"GameState":1,"ID":21,"GameNum":8},{"Flower":1,"Num":6,"GameState":1,"ID":6,"GameNum":6},{"Flower":2,"Num":6,"GameState":1,"ID":19,"GameNum":6},{"Flower":3,"Num":6,"ID":32,"GameNum":6},{"Flower":1,"Num":5,"ID":5,"GameNum":5},{"Flower":3,"Num":5,"ID":31,"GameNum":5},{"Flower":1,"Num":4,"ID":4,"GameNum":4},{"Flower":1,"Num":3,"ID":3,"GameNum":3},{"Flower":3,"Num":3,"ID":29,"GameNum":3}]},{"CardInfos":[{"Flower":1,"Num":2,"ID":2,"GameNum":16},{"Flower":4,"Num":1,"ID":40,"GameNum":14},{"Flower":2,"Num":13,"ID":26,"GameNum":13},{"Flower":2,"Num":12,"ID":25,"GameNum":12},{"Flower":3,"Num":12,"ID":38,"GameNum":12},{"Flower":1,"Num":11,"ID":11,"GameNum":11},{"Flower":2,"Num":10,"ID":23,"GameNum":10},{"Flower":3,"Num":10,"ID":36,"GameNum":10},{"Flower":2,"Num":9,"ID":22,"GameNum":9},{"Flower":4,"Num":8,"ID":47,"GameNum":8},{"Flower":1,"Num":7,"ID":7,"GameNum":7},{"Flower":3,"Num":7,"ID":33,"GameNum":7},{"Flower":4,"Num":7,"ID":46,"GameNum":7},{"Flower":2,"Num":5,"ID":18,"GameNum":5},{"Flower":2,"Num":4,"ID":17,"GameNum":4},{"Flower":4,"Num":4,"ID":43,"GameNum":4}]}]},"Info":{"GameZT":4,"MaxPlayCard":{"Pos":3,"Type":2,"GameNum":10,"Ids":"JA=="},"ActivePlayCard":{"Pos":3,"Type":2,"GameNum":10,"Ids":"JA=="},"WhoPlay":3,"FistPlay":2,"BaoZhuang":"AgIC","PlayNum":3,"OverPos":3,"ZhaDans":[0,0,0],"ShenYuCard":"BwQA","Score":[0,0,0],"PlayTuoGauan":"AAAA"}} |