一个多月前我基于JQuery+Bootstrap写了一个静态网页版本的明日方舟公开招募计算器,并且在此之后拓展了一下范围到升级计算、材料计算等等。虽然源代码是公开的,但觉得还是有必要简单介绍一下以作记录。
公开招募计算器
其实这个东西的原理非常简单:选择5个TAG(实际允许最多选6个作为余量),将自动计算所有可能的组合会出现的结果,推荐出较优的组合。
这里面有两个问题:1. 怎么生成所有排列组合,2. 什么组合“较优”。
关于1,其实是用了一个简单的位遍历。6个TAG中,每个TAG要么“出现”或者“不出现”,那么共有2^6=64种可能性。其中还要排除掉超过3个TAG的情况(游戏内最多同时选择3个)。
最快生成N个TAG的各种组合的方式其实就是“位”,即0 ~ 2N-1,二进制每位0表示不出现,1表示出现,即可生成所有 2N 种情况,再加以筛选。
关于2,这里比较复杂。最基本的思路是求TAG内所有出现可能性的平均值。仅仅这么做是不行的,全5/6星TAG中,自然是可能结果数量越少(越精准)则越好,同时TAG数量越多消耗也越大(虽然微乎其微)。为此需要再引入可能出现的干员数量CC(越少越好)和选择的TAG数量TC(越少越好)。
需要注意的是,CC和TC在实际生成中是存在矛盾的,通常TC越大,CC越小,而TC越小,CC越大,这就需要为两个因素赋以权重。这里并没有什么精密的数学推导,仅仅是凭借经验的方式,决定CC的权重要大于TC权重。
使用状况
我对这个工具的预期其实是:开服后有一段时间的上升,后来使用量趋于平缓不再上升,再后来大家都开始熟悉公开招募可能出现的TAG之后 放弃查询自暴自弃 降低使用量。至少在目前的使用情况来看,还是很让我开心:每天都有10w+人在用我做的小工具。
2019/11/17 回顾:开服半年后,工具箱访问量终于也是大幅下滑了,跟我之前的预期差不多。有一点没有预估到的是,舟游的人气也在大幅下滑。
关于英文
这个工具我一开始并没有做英/日/韩文版本的计划,直到某天在Google Analytics中发现了上图中的AN-EN-Tags(因为他们没有删除页首的Google Analytics代码)才发现有国外友人做了一个英文版本,并加入了图片功能。
一开始我知道后与Fork我的这个作者中文联系表示想把他们的分支Merge到主Repo里,他们回我邮件说自己不懂中文但能用谷歌翻译懂邮件的意思,同样想Merge进来但不知道怎么做。后来我们决定各自做一个多语言版本,再后来发现功能相差太大已经没法Merge了于是放弃。但多语言特性(其实目前只有英文)还是保留了下来。
一点展望
这个工具箱一开始只是做了一个公开招募的功能,并不知道将来还会做些什么。包括到后来的等级计算、精英材料计算等都是没有找到好用的版本,只好自己做一个。
由于发布平台的限制(Github/Coding Pages),工具并不能有比较高级的功能,静态网页、不能有数据存储等等,限制因素非常大。如果有可能的话,我会在将来的云服务器上做点什么以拓展功能。
后面会继续做些什么呢?不知道,等有人提需求/我想到了/需要用了就做吧。
2019/11/17 回顾:已经实现了一款新版的工具箱,重复造了一边轮子,又加入了些新的东西(然而访问量并不高哈哈哈)。