前言
本贴将之前没有连接数据库的抽卡模拟器全部完善,最终已经放在了Github上
用的mysql构建的数据库,导出sql文件,用SQlite3再读一遍,生成一个db文件,创建了四个表
| 表 | 属性 |
|---|---|
| 卡池表 | 序号,卡池名,up角色 |
| 卡牌表 | 卡牌序号,卡牌名,卡牌星级,卡牌种类 |
| 卡池&卡牌表 | 序号,卡池名,卡牌名 |
| 抽卡记录表 | 记录序号,卡池名,卡牌名 |
简单易用就好,其实后两个表应该用卡池和卡牌表的主键(序号)来做外码的,但查询语句多写一段有点麻烦,就不绕弯子,直接用名字查了。
预览
功能实现
- 单抽+十连的结果图片显示
- 十连保底出现SR
- 重做界面,删除无用的登陆界面
- 可以抽取马娘池,也可以抽取支援卡池子
- 对抽卡结果的统计
- 可以自主选择卡池
- 选择不同卡池出现不同的标志性图片
- 显示公告
- 建立抽卡模拟器的数据库,建立表:卡池表,卡牌表,卡池&卡牌表,抽取结果表
- 连接数据库
- 抽卡后输出抽卡日志
说明
抽卡逻辑为:
- 先得到本次抽卡卡的稀有度
- 在数据库中查询该稀有度的所有卡牌,随机返回一张
- 十连保底,但up的概率并未添加
对于日志中的None,表示的是卡名称查询不到。这是因为卡牌数据库构建的不完备,数据太少,有的品质的卡没有具体写入,修改data文件夹中的数据可以完善。data文件夹就是数据库中构建的三个表,而第四个表–抽卡记录表在程序运行后会以txt格式输出到根目录。
具体修改
为了简明,我把数据库相关的函数写在了conn2sql.py文件中,其中包含数据库的创建,添加元素,查找卡牌以及将数据库的某表输出为txt
源码:
import sqlite3
import random
# 创建数据库
def create_database_from_sql(sql_file, db_name):
with open(sql_file, 'r') as file:
sql_statements = file.read()
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
cursor.executescript(sql_statements)
conn.commit()
conn.close()
# 数据写入数据库
#添加卡池信息
def insert_cardpool(text_file, db_name):
conn

文章讲述了作者如何完善了一个未连接数据库的抽卡模拟器,使用MySQL构建并导出SQL文件,然后导入SQLite3生成db文件。作者详细介绍了数据库结构和功能实现,包括单抽和十连的逻辑,以及如何读取和存储抽卡记录。
最低0.47元/天 解锁文章
2289





