python抽卡。卡的类型分为S、A、B、C四种。C获得几率0.943,B获得几率0.051,A和S获得几率0.006。有两种抽取方式,第一种模式,为抽取一次。第二种模式为抽取十次,若前九次未抽取S、A、B,则必定抽取一次B。输入1为单次抽卡。输入10为十连抽卡。
时间: 2024-03-14 12:48:38 浏览: 7
好的,你可以尝试使用以下代码实现该功能:
```python
import random
# 定义卡池
cards = {'C': 0.943, 'B': 0.051, 'A': 0.006, 'S': 0.006}
# 定义单次抽卡函数
def draw_card():
rand_num = random.random()
accumulate_prob = 0.0
for card, prob in cards.items():
accumulate_prob += prob
if rand_num <= accumulate_prob:
return card
# 定义十连抽卡函数
def draw_ten_cards():
cards_drawn = []
for i in range(9):
card = draw_card()
cards_drawn.append(card)
if card in ['S', 'A', 'B']:
return cards_drawn
cards_drawn.append('B')
return cards_drawn
# 主函数
def main():
mode = input("请输入抽卡模式(1为单抽,10为十连抽):")
if mode == '1':
card = draw_card()
print("你抽到了:", card)
elif mode == '10':
cards_drawn = draw_ten_cards()
print("你抽到了:", cards_drawn)
else:
print("输入有误,请重新输入!")
if __name__ == '__main__':
main()
```
代码中,主函数中先让用户输入抽卡模式,如果是单次抽卡,则调用`draw_card()`函数进行抽卡,并输出抽到的卡。如果是十连抽卡,则调用`draw_ten_cards()`函数进行抽卡,并输出抽到的所有卡。如果输入的模式不是1或者10,则提示用户输入有误。