该方法来自于原开发者留下的代码里对场面的测试,因为xd更新迭代很多版,需要对RoutinesDefaultRoutineSilverfishaiBoardTester.cs进行修改,将和“mana changed”下面加粗的这个部分进行修改,主要是对盘面开始分析的这部分:
1 if (s.StartsWith("mana changed")) { continue; } 2 if (s.StartsWith("开始计算, 已花费时间: ")) { if (!fistRun) break; fistRun = false; 3 Ai.Instance.currentCalculatedBoard = s.Split(' ')[2].Split(' ')[0]; this.botBehavior = s.Split(' ')[4].Split(' ')[0]; 4 this.maxwide = Convert.ToInt32(s.Split(' ')[5].Split(' ')[0]);
接下来是具体的步骤:
步骤1:修改BoardTester.cs完成,就是上面这部分。
步骤2:将要调试的盘面信息,存储为test.txt放在炉石兄弟汉化版2020.1.17RoutinesDefaultRoutineSilverfishdata目录下
步骤3:照常启动xd
步骤4:将xd生成的CompiledAssemblies一连串数字DefaultRoutine.dll复制到根目录下。注意:这一步每次修改过策略以后都要重新做,我还没找到更好办法。
步骤5:在xd的设置->Main勾选显示设备,Dev选项就开启了,
步骤6:在Dev窗口右边Assemblied区域中换行输入DefaultRoutine.dll,这里代表着访问刚刚拷贝出来的文件。左侧Code区域输入以下代码,点击Run Code开启测试,:
步骤7:新计算的盘面将会生成在RoutinesDefaultRoutineSilverfishUltimateLogsLogg.txt文件里,如果为了方便查看,可以在执行代码前删除该文件。