超市最近在筹备一款水浒主题的卡牌类游戏,将绿林好汉设计成游戏中的一百零八张卡牌,卡牌共有 SSR、SR、R 三种稀有度。
你能编写程序,让玩家有 1% 的几率抽中 SSR 卡、9% 几率抽中 SR 卡、90% 几率抽中 R 卡吗?
数据说明
卡牌数据 cards
变量中,变量共有两层:
- 外层为 字典 类型,储存着 稀有度-卡牌 键值对;
- 内层,即键值对中的值,是 列表 类型,储存着该稀有度下的卡牌。
要求
- 设计并编写
draw_card()
函数,该函数功能是从cards
中抽取一张卡牌,并调用编写好的print_slowly()
函数打印出卡牌内容;- 调用
draw_card()
函数抽取卡牌。
# 从 time 模块导入 sleep 方法
from time import sleep
import random
# 定义卡片参数
cards = {'SSR': ['宋江', '卢俊义', '吴用', '公孙胜', '关胜', '林冲'],'SR': ['秦明', '呼延灼', '花荣', '柴进', '李应', '朱仝', '鲁智深', '武松', '董平', '张清', '杨志', '徐宁', '索超', '戴宗', '刘唐', '李逵', '史进', '穆弘', '雷横', '李俊', '阮小二', '张横', '阮小五', '张顺', '阮小七', '杨雄', '石秀', '解珍', '解宝', '燕青'],'R': ['朱武', '黄信', '孙立', '宣赞', '郝思文', '韩滔', '彭玘', '单廷珪', '魏定国', '萧让', '裴宣', '欧鹏', '邓飞', '燕顺', '杨林', '凌振', '蒋敬', '吕方', '郭盛', '安道全', '皇甫端', '王英', '扈三娘', '鲍旭', '樊瑞', '孔明', '孔亮', '项充', '李衮', '金大坚', '马麟', '童威', '童猛', '孟康', '侯健', '陈达', '杨春', '郑天寿', '陶宗旺', '宋清', '乐和', '龚旺', '丁得孙', '穆春', '曹正', '宋万', '杜迁', '薛永', '施恩', '李忠', '周通', '汤隆', '杜兴', '邹渊', '邹润', '朱贵', '朱富', '蔡福', '蔡庆', '李立', '李云', '焦挺', '石勇', '孙新', '顾大嫂', '张青', '孙二娘', '王定六', '郁保四', '白胜', '时迁', '段景住']
}# 请定义 draw_card() 函数
def draw_card(cards):index = random.randint(0,99)if index<= 1:name = 'SSR ',random.choice(cards['SSR'])elif index <= 10:name = 'SR ',random.choice(cards['SR'])else:name = 'R ',random.choice(cards['R'])
# 该函数功能为抽取一张卡牌,并调用 print_slowly() 函数打印出卡牌内容print_slowly(name)
# 缓慢打印
def print_slowly(text, delay=0.1):# 在一行内逐字打印 textfor letter in text:print(letter, end='')sleep(delay) # 每打印一个字,暂停 delay 秒print('')draw_card(cards)
# 输出结果:(输出结果为默认值)
# R 陈达
# R 丁得孙......