算法创作|模拟抽卡游戏抽卡问题解决方法

引言震惊!全网最火某网游抽卡模拟流出。问题描述输入抽卡次数X,得出抽卡结果示例:输入:X输出:UR(SSR,SR,R)解决方案在如今大部分抽卡游戏中,抽卡都是一个结果未知的行为,所以运用random可以对其进行模拟。而且其中的大部分游戏都存在一个“保底机制(指获得某个稀有度的卡最多需要的抽卡次数)”,于是便有了如下程序import randomm = input("请输入抽卡次数")n = int(m)a = 0b = 0c = 0d = 0luck = 0number1 = 0six = ["UR","UR"]five = ["SSR","SSR"]four = ["SR","SR"]three = ["R","R"]for i1 in range(0,n,1):secret = random.randint(1,100)if luck <= 50:if 1<=secret<=2:number1 =  random.randint(0,1)print(six[number1])a = a + 1elif secret<=10:number2 = random.randint(0,1)print(five[number2])b = b + 1elif secret<=60:number3 = random.randint(0,1)print(four[number3])c = c + 1else:number4 = random.randint(0,1)print(three[number4])d = d + 1else:if 1 <= secret <= 2 * (luck-49):number5 =  random.randint(0,1)print(six[number5])luck = 0a = a + 1elif secret <= 2 * (luck-49) +8:number6 = random.randint(0,1)print(five[number6])b = b + 1elif secret <= 2 * (luck-49) +58:number7 = random.randint(0,1)print(four[number7])c = c + 1else:number8 = random.randint(0,1)print(three[number8])d = d + 1luck = luck + 1print("抽卡结束,共抽到六星" + str(a) + "个,五星"  + str(b) + "个,四星" + str(c)  + "个,三星" + str(d) + "个,抽出六星比例"+ str(a/n))p = a / nif p > 0.02:print("今天的爆率真高啊")else:print("累了,毁灭吧")结语这段程序模拟了拥有保底机制的抽卡游戏的抽卡环节,每次的抽卡次数可以自定义,但由于使用的是random,随机性过大,与市面上的抽卡游戏的实际有些许不符。实习编辑:王晓姣稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐