测试 AI 改动(Testing AI changes)
代码库支持运行自动化模拟,并为 AI 开发比较结果。
启用
设置一个自定义构建配置。
把工作目录设为 android/assets,就像运行桌面版时一样。并使用 unciv.desktop.main 模块。 
运行模拟
执行上面配置好的 ConsoleLauncher 构建配置。结果会出现在 IDE 的控制台中。
配置模拟
在 desktop\src\ConsoleLauncher.kt 文件中,你可以调整要运行的模拟次数、使用哪些国家等。
建议使用没有 Unique 的通用文明。你可以看到代码向 ruleset 对象添加了一个通用 Nation,你可以用国家名常量作为控制开关,在代码各处控制不同的行为。
你还可以调整游戏参数和地图参数。为了获得更一致的结果,关闭自然奇观和野蛮人会有帮助。
默认情况下玩家顺序是随机的,这样更公平。
statTurns 列表参数允许系统在特定回合保存某些统计数据,这样你可以在游戏过程中跟踪它们。
理解结果
默认情况下控制台会报告每个文明的胜利次数、胜利类型以及游戏结束时的 popsum。这是游戏结束时整个文明的平均人口数。
验证你对哪个文明会赢、会怎么赢的预期,以及报告数值的任何变化,是个好习惯。有些变化不会反映在胜率上,所以更适合在地图编辑器里做场景或用游戏内控制台来测试 AI 行为。
还会报告 p 值,根据胜率显示这个结果在二项检验中出现的可能性。如果这个值很小,说明这不太可能是随机出现的,你的改动对整体胜率产生了统计上显著的改变。运行 200-400 次模拟通常是一个不错的基准。