python | 编写一个明日方舟白嫖党抽六星模拟程序

本文介绍了作者使用Python编写的一个模拟明日方舟抽六星干员的程序,通过Pool和Doctor类来模拟游戏中的卡池和玩家行为。程序考虑了保底机制、六星获取概率及黄票兑换等要素,最终展示了一次模拟抽卡的结果。
摘要由CSDN通过智能技术生成

周年庆快开始了,作为一个每次只抽保底的白嫖党,我十分慌张,为了检验我是否能抽到限定六星干员,在这里我用python写了一个抽六星的模拟程序,来保证我能抽到六。。。

最近有点顿悟了类的使用,因此写点程序来练练手,于是便有了这次体验

一、简介

  1. 首先构想很简单,谁都能想出来,类有两个,一个是池子,还有一个自然是doctor了;
    那这次模拟以月为单位,每月鹰角更新三个池子,其中两个是常规池子,还有一个是新六星的池子,池子的抽卡概率,保底机制,还有池子里的六星我是否已经拥有的概率,这些因素都在这个池子类中体现,定这个类为Pool
  2. 然后是玩家Doctor类,玩家自然有玩家数据,如合成玉,黄票,玩家的六星数,玩家知道的游戏中所有的六星数,玩家的抽池子次数(即保底次数), 玩家的白嫖思想(抽个保底走人),等等。
  3. 那么白嫖党的规则出来了,doctor每月通过龙门市区,商店,鹰角维护获得玉(抽卡券),并且攒够180黄票便能换个新六星,然后每抽一次卡记录保底信息,保底机制影响池子,而新出的英雄以及doctor自身盒子也影响了doctor能够得到新六星的效率。

二、Pool类

先敲定Pool类的东西,创建Pool.py
池子两个六星,有可能是我拥有的,可能是我没有的,因此让两个六星分别获得两个随机数,当这个数小于某值时,判定为我没有的六星(这个某值由我拥有的六星数和六星总数决定),各个星级的出货概率众所周知,不必多说,Pool类的抽卡方法就是出一个随机数,抽出多少星由判定随机数在什么范围决定,保底机制影响这个范围。
Pool.py

import random

class Pool:         #常规池子信息
    def __init__(self,bd_addition):  #传入保底机制
        self.upSixStar1 = random.random()       #第一个六星名字
        self.upSixStar2 = random.random()       #第二个六星名字
        
        self.sixStar_PR = 0.02 + 0.02 * bd_addition  #六星出货率
        self.fiveStar_PR = 0.08 - 0.08 / 49 * bd_addition #五星出货率
        self.fourStar_PR = 0.5 - 0.5 / 49 * bd_addition  #四星出货率
        self.threeStar_PR = 0.4 - 0.4 / 49 * bd_addition #三星出货率
        

    def sendCard(self): #抽卡信息
        cardGet = random.random()
        return cardGet

    
    def correct(self,bd):     #抽卡一次后重新计算保底的方法
        self.sixStar_PR = 0.02 + 0.02 * bd  #六星出货率
        self.fiveStar_PR = 0.08 - 0.08 / 49 * bd #五星出货率
        self.foureStar_PR = 0.9 - 0.9 / 49 * bd  #四星出货率
        self.threeStar_PR = 0.4 - 0.4 / 49 * bd #三星出货率

class SpecialPool(Pool):            #新干员池子
    def __init__(self,bd_addition):  #传入保底机制
        self.upSixStar1 = 0       #新六星
        self.upSixStar2 = random.random()       #另一个六星
        
        self.sixStar_PR = 0.02 + 0.02 * bd_addition  #六星出货率
        self.fiveStar_PR = 0.08 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值