原神圣遗物配装计算器

659 阅读4分钟

背景

最近玩原神长草了,长草期干的最多的就是刷圣遗物,好不容易刷了一堆的好圣遗物,到底角色装那几个圣遗物分数评分最高呢(一个没pvp的游戏,能比的也就圣遗物评分和角色伤害了...),试了试流行的提瓦特小助手,原魔工具箱,都只能看到你展示柜里现在角色的圣遗物评分,没法给你推荐最优解,难道要一个个试QAQ,那不得累死。

作为一个只想偷懒的程序员,不如自己来写一个,目标就一句话:给我的当前角色推荐评分最高的圣遗物

实现效果

登录页

输入角色uid登录,后续进入会自动登录

圣遗物页

登录后,会自动同步当前uid展示柜中的圣遗物信息并展示,展示柜更新后可以通过点击批量同步来更新圣遗物信息

首页

  • 点击新增角色,输入角色名、套装名、圣遗物各位置主词条想要的属性,后续在计算会自动计算满足当前套装和优先属性的最优圣遗物选择

  • 保存后,首页会新增一个角色列表,可以添加多个角色,多角色共用一个圣遗物池,角色赋予的圣遗物不会重复 多个角色会按照添加的先后顺序 ,依次计算满足当前套装和优先属性的最优圣遗物选择。(这样更符合实际组队时候需要的圣遗物搭配)
  • 点击计算,提供圣遗物配装建议

我的

  • 支持退出登录,手动更新角色信息,手动更新圣遗物信息

结果

最后放一下我最后经过计算后的提升

提升前:

提升后:

前期准备

要达到这个目标得有以下几个点需要完成

1. 获取角色圣遗物信息

  • 首先想到的是非常有名的莫娜占卜铺,看了他的方案是通过OCR的方式来一个个识别你的圣遗物信息并落库,能牛逼,但是我没电脑(否决)
  • 要不一个个录入?有点low,可以作为一个备选方案
  • 看着提瓦特小助手,突然想到他为什么能通过uid就拿到我的角色和圣遗物信息,难道有接口,经过不懈的搜索,终于找到了enka,竟然已经有大神把这些都封装成api了,只要传入uid就能拿到角色在展示柜的所有信息,并且还有角色id,圣遗物id,中文名等等!!

2. 计算圣遗物分数

有了圣遗物,怎么计算分数呢,鉴于我每次都是通过提瓦特小助手来查看我的分数的,那我就用他们提供的公式吧(ps:有些新角色他在文章中没有写,我也没有这些角色,就没法计算了QAQ,有新角色的可以在评论区提供下收益比例)

3. 技术方案

理论的东西都调研的差不多了,接下来就是实现了,整套东西是可以完全在客户端上实现的,但是为了后期迭代不用发版(其实是想玩下后端,给自己找个借口),准备把计算,圣遗物信息的存储都放在后端,客户端只做一个单纯的展示,后期也可以迁移为小程序、flutter等等

感想

一开始觉得这个功能还是比较简单的,觉得两三天就能完成,没想到中间的问题还是有不少。

第一次写后端服务,买了一个月的阿里云服务器,踩了不少坑;中间关于圣遗物的计算,因为自己想更符合实际,至少要满足自己的需求,所以加入了套装,优先主属性,多个角色计算等等,写起来算法还是比较复杂的。

最终的效果我自己还是比较满意的,帮助我不少角色完善了圣遗物,后续还有几个点想完善

  • 支持单个上传圣遗物
  • 开发小程序版本

后续还会写下关于搭建服务,使用数据库过程中踩到的坑,欢迎大家点赞关注

相关链接

enka

服务端git代码

客户端代码

apk下载:www.xcxwo.com/DNn75n