【PYQT】赛马娘抽卡模拟器-基于Bwiki的抽卡模拟(下)

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

前言

本贴将之前没有连接数据库的抽卡模拟器全部完善,最终已经放在了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 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值