网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月03日
漏签
0
天
炉石兄弟吧
关注:
41,908
贴子:
577,004
看贴
图片
吧主推荐
玩乐
9
回复贴,共
1
页
<返回炉石兄弟吧
>0< 加载中...
修复XD发现机制只会选择最右边卡牌的问题
取消只看楼主
收藏
回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
话不多说,先直接上最终修复的点,其实是一个非常简单的修改,如图,打开DefaultRoutine.cs,调整makeChoice方法里面的HasReferencedTag为HasTag就行了。
虽然最终很简单就修复了这个问题,但是定位这个问题的过程还是比较曲折,有兴趣的吧友,可以往下看,我会在后面的楼层更新定位这个问题的过程。
送TA礼物
IP属地:四川
来自
Android客户端
1楼
2021-01-07 12:50
回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
1、用VS创建一个控制台应用,将HB复制进去,然后根据图片添加依赖项。这样才能查看HB封装编译的接口方法,并在引用间跳转。
IP属地:四川
来自
Android客户端
2楼
2021-01-07 12:54
回复(2)
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
2、目标是修复发现机制,所以我全局搜索了很多关键字,比如:“发现”、“discovery”、“discover”,过程比较曲折,还有各种看代码。分析代码,就不一一表述了,最后在如图的地方找到了比较符合预期的代码。
IP属地:四川
来自
Android客户端
4楼
2021-01-07 12:58
回复
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
3、然后就是定位问题点了:首先阅读代码,聚焦到了关键方法makeChoice, 由于没有办法断点调试,所以只能采用原始技能,各个代码分支输出日志锚点。
IP属地:四川
来自
Android客户端
5楼
2021-01-07 13:02
回复
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
4、然后是重启兄弟,开始执行并查看输出的日志,这里我用牧师组了一个全是发现卡牌的卡组,然后找旅店老板进行了切磋,旅店老板还是比较靠谱,没有倒计时
IP属地:四川
来自
Android客户端
6楼
2021-01-07 13:06
回复
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
5、根据日志的输出,发现没有打印ee、ff(截图中的gg分支是后面补的,开始的时候没有这段),choiceMode没有赋值DISCOVER,从而导致没有进入后面的nn分支
IP属地:四川
来自
Android客户端
8楼
2021-01-07 13:07
回复
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
6、核心问题找到了,大概率就是 sourceCard.GetEntity().HasReferencedTag(Game_TAG.DISCOVER) 这一段有问题了。
然后就是各种折腾,希望能把这个判断通过,尝试了通过序列化将entity转为JSON,查看有哪些属性,结果不支持转换-_-||
各种进入EntityBase查看成员方法,各种尝试,日志打印,最后确认了HasTag方法可以完成此判断。然后HB的发现机制就好了。
IP属地:四川
来自
Android客户端
9楼
2021-01-07 13:09
回复
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
7、此外,为了增加不同策略下发现卡牌的附加逻辑,我在Behavior增加了getDiscoverPriority方法,也就是5楼图2中ai.botBase.getDiscoverPriority方法。还在完善中,后续完善了再更此贴。
IP属地:四川
来自
Android客户端
10楼
2021-01-07 13:12
回复(1)
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
8、解释下为什么要做发现的补充逻辑:原有逻辑是分别计算发现的卡牌在加入手牌之后,下一步操作的场面值高低,从而决定选择哪一张。但是,经过观察发现,存在加入任何一张卡牌后的下一步场面值都一样的情况,这有可能是发现的卡牌并没有添加SIM逻辑,也有可能是对场面确实都没什么帮助?还没有具体去研究Playfield的计算逻辑代码。
IP属地:四川
来自
Android客户端
21楼
2021-01-07 21:23
回复
收起回复
清幽密林-
奥拉基尔
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
9、附加的发现补充逻辑的思路如下:
a、保留原有的计算逻辑,然后把最后计算出来的场面值与卡牌信息对应存储起来,
b、原有逻辑结束后,再判断最优场面值的卡牌选择有几张,如果只有1张那就直接选他了(避免错过斩杀选项),如果有多张,那就分别计算这多张的附加逻辑优先值,附加逻辑通过behavior定义;具体操作见图。这里有controller的简单示例,也可以直接copy到rush策略去。当然大家也可以仁者见仁智者见智,自己补充需要的附加逻辑。
IP属地:四川
来自
Android客户端
22楼
2021-01-07 21:25
回复(7)
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
BLG怪谈之我成为了世一中单
2300820
2
结婚彩礼该不该限额
1962749
3
美方威胁泽连斯基不谈判就下台
1948184
4
LOL全球先锋赛你看好哪队
1661445
5
说出你心目中最好的动作游戏
1262092
6
哪吒2还差3亿超过复联3
930275
7
Tian在TES真的尽力吗
900120
8
詹姆斯常规赛1000胜
884074
9
2025奥斯卡获奖名单出炉
706508
10
遮天vs凡人为何同厂不同命
668745
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示