使用python基本函数实现简易的《原神》抽卡系统 您所在的位置:网站首页 原神抽卡代码手机怎么搞的 使用python基本函数实现简易的《原神》抽卡系统

使用python基本函数实现简易的《原神》抽卡系统

2024-06-03 10:42| 来源: 网络整理| 查看: 265

使用python基本函数实现简易的《原神》抽卡系统 前言基本思路抽卡基本函数抽卡概率设定卡池保底策略抽卡结束做什么统计背包抽奖操作 交互系统开始祈愿祈愿记录充值系统退出 结语

前言

最近迷上了《原神》这款游戏,其中的抽卡系统也是很让人上瘾,尤其是1.3版本更新中魈的up池的开启,不知不觉氪金数额已近千元。看着瘪瘪的腰包,我想:为什么不自己写一个抽卡系统,爽个够? 说干就干

基本思路

原神的抽卡系统可以建立在单抽的基础上,主要有单抽和十连这两种选项。抛开其概率的设定不说,卡池分别包含五星角色(因为是模拟的魈up池所以没有五星武器)、四星角色、四星武器和三星武器。五星和四星又分别有保底政策。在抽卡函数之外,还需要一定的交互界面,比如查询、充值等选项。 大致思路如上,以下为具体做法

抽卡基本函数

先来个这个:

import random 抽卡概率设定

此处我使用的是random函数,由于也不是很懂设置概率的操作,直接就用生成随机数,再判断随机数的区间,只要把区间范围圈定,可以简单地设置抽卡的概率。代码如下:

def single(): """不保底时的抽奖""" i = random.randint(1, 10001)#生成10000个整数 if i in range(1, 61):#五星中奖概率为0.6% a = random.randint(0, 5) star = st5[a] stat.num_5 = 0 elif i in range(61, 316):#四星角色概率为2.55% cha = random.randint(0, len(cha_4)) star = cha_4[cha] stat.num_4 = 0 elif i in range(316, 571):#四星武器概率为2.55% wea = random.randint(0, len(weapon_4)) star = weapon_4[wea] stat.num_4 = 0 elif i in range(571, 10001):#其余为三星 star = '三星' else: #不知道为什么,实际操作中总是会生成写奇奇怪怪的 #东西,为了不影响原函数,这里else直接忽视 return None if star == up: stat.num_5 = 0 stat.up_num = 0 add(star)#这个函数会在后面解释 卡池

为了不影响阅读,还是把卡池内容贴上吧

"""卡池内容(未设置四星up角色)""" up = '魈' st5 = [up, up, up, up, up, '刻晴', '莫娜', '七七', '迪卢克', '琴'] cha_4 = ['安柏', '丽莎', '凯亚', '芭芭拉', '雷泽', '菲谢尔', '班尼特', '诺艾尔', '菲谢尔', '砂糖', '迪奥娜', '北斗', '凝光', '香菱', '行秋', '重云', '辛焱'] weapon_4 = ['弓藏', '祭礼弓', '绝弦', '西风猎弓', '昭心', '祭礼残章', '流浪乐章', '西风秘典', '西风长枪', '雨裁', '匣里灭辰', '祭礼大剑', '钟剑', '西风大剑', '匣里龙吟', '祭礼剑', '笛剑', '西风剑', '岩盔丘丘王'] st4 = weapon_4 + cha_4 get = []#这是每次抽奖后存储抽出内容的列表 have = []#这是存储总抽出内容的列表 保底策略

写程序的时候,这个是让我比较头疼的地方。一开始我想用简单的if-else,未果后尝试while,最后才想起来正解:引入跟踪游戏数据的类

class Stats: """跟踪游戏统计信息""" def __init__(self): self.total = 0#记录总抽卡次数(似乎没用到) self.up_num = 0#记录up保底次数(180发保底) self.num_4 = 0#记录四星保底次数(10发保底) self.num_5 = 0#记录五星保底次数(90发保底) self.stone = 0#这个用于充值系统,记录原石数

本来需要考虑到“抽到五星后,下一个五星必为up角色这一政策,但是嗯…我的方法的执行效果似乎是一样的 利用这个统计信息,每抽一次卡,如果没有出现期望的物品,对应数据就会+1,从而累积起来,到达保底数时,触发保底政策。 保底函数如下

def check_up(): """检查保底""" if stat.up_num


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有