【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器...

1.前言

今年的疫情来得突如其然,被窝在家里的我,又重拾旧业——三国杀。我接触三国杀时间也不短了,现在却也只有两个史诗将(左慈、许攸)QAQ。在氪金上我应该算个非洲土著吧,但是我又抑制不住开盒时刻的那种爽感。

于是,我想起来何不自己写个抽奖模拟器呢?这样我就可以省下很多钱,又享受了土豪开盒的快感.....

花了大概一晚上,我用Python写出来一个普通的开盒模拟器——只能在Python编程环境下的黑框框中运行,然后我开了一晚上盒子......随后又感觉交互性太差,我就打算干脆做个带界面的开盒模拟器来。于是,我特意跑去接触了下Python的UI开发包,中间也趟过坑。最终在断断续续的摸鱼时间里,我写完了这个属于穷人&非酋的“三国杀开盒模拟器”。

展示一下最终的界面图:

【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器..._第1张图片

毕竟个人这审美还是不足,做出的这个界面虽然丑了点,但还是比较清楚的......现在还有一些功能没有进一步完善,比如:评级、数据分析。这一块我打算之后有空了再细化一下。

2.功能展示

2.1 充值

点击“充值”就可以“充值”了,这里充值的范围是非负整数(Python3.5之后的int长度理论上是无限的)。

【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器..._第2张图片

2.2 购买盒子

点击“商店”,在下拉框选择自己想购买的盒子种类和数量。

【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器..._第3张图片

2.3 抽奖

脱非入欧就在此时!(我自己试过最好一次是50个盒子出神司马懿)

【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器..._第4张图片

【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器..._第5张图片

2.4 数据统计

这里有点懒得写了,实际上可以参考“3σ原则”做一个概率分布,然后判定某人的运气到底是前10%,还是前1%。我这里粗略地用史诗武将数量来定义的,后续如果功能更新,这里应该是被优化的点。

【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器..._第6张图片

3 技术路线

Python+PyQt5+Pandas。其实这个小软件可以拆分成前端、后端来看,前端是PyQt5实现的界面,后端是Python写的类&整体框架,Pandas相当于数据库的交互,因为我用了一个.csv文件存放所有盒子的权重、奖品等信息,程序启动后会用这个.csv文件进行初始化。

后续我还会抽空对功能进行进一步的优化,也会出一些博客来记录这个开发过程。

你可能感兴趣的:(编程)