基于python的公主连结PCR抽卡模拟器制作

前言:
个人介绍:
作为一个经常在B站投稿偶像大师live的UP主,也经常会突破常规去投一些各式各样的视频和专栏文章。如果觉得我的内容对您有帮助,请关注、点赞、收藏哦~
也欢迎来关注我的个人网站,我经常会发一些有趣的内容在网站上:https://www.fyf99170.top

项目介绍:
经历了前段时间日本语能力测试的考试后,又有时间来研究python了。作为一名普通的大学生,也是初次接触python编程。其实在之前,我已经发了关于PCR公主连结抽卡模拟器的相关专栏,也有很多人关注。但我总觉得自己写的代码过于的随心所欲,逻辑上非常的混乱。因此在今天,又重新把代码全部重写了一遍,以提升可读性,也希望和大家进行交流。至于可执行版本的公开,还请等到下一篇专栏文章,望大家谅解!本文已公布所有代码,位于文章结尾处。代码请自由使用,本文未经许可禁止转载。

原理介绍及代码特色:
1.首先,在本次演示当中,我采用了台服10月卡池,即卯月(NGS)的三星限定UP卡池,我将卡池数据导入到一个txt文件当中,方便修改。通过读取外部文件来获得卡池相关信息。其中第一行为卡牌名,第二行为稀有度,第三行为是否为三星限定角色:

2.其次,下面将对本卡池的抽卡原理进行解释,1-9连中,s卡抽卡概率为79.5%,sr卡抽卡概率为18%,SSR卡抽卡概率为2.5%,限定角色抽中概率为0.7%。第10连中,s卡概率为0%,sr卡概率为97.5%,SSR卡概率为2.5%,限定角色抽中概率为0.7%。可见,就算是第10连必定sr及以上,对于抽中三星并没有什么实质性的帮助。


3.考虑抽卡自动化,当抽中限定三星角色后即停止while,当触发“天井”即停止while。因此,可以直截了当的快速看到需要多少个10连才能够抽中限定角色,并且可以看到SSR率是多少,以判定自己的欧气程度。同时,可以看到每一次10连能够抽到哪些角色,这些都能清晰的展示在你的面前。
4.创建“卡池”和“玩家手”两个类,清晰的显示卡池当中有多少张卡牌,各自的稀有度如何。通过“玩家手”可以看到自己获得了哪些卡牌。调用方便。

结果展示:
注意:以下为在macOS运行效果,不代表Windows运行效果。请使用原图观看!




代码展示:
由于B站专栏不提供代码高亮,因此暂时以截图方式呈现。请使用原图观看:







结尾:
感谢您的观看,如果觉得我的文章还不错的话,请关注、收藏、点赞哦!