面向对象的扑克小游戏

'''
运用类完成一个扑克类(无大小王)的小游戏
用户需要输入用户名,以下为用户可选选项:
1、洗牌
2、随机抽取一张
3、指定抽取一张
4、从小到大排序
5、退出

1、洗牌:每次执行的结果顺序随机。
2、随机抽取一张:显示结果为:您随机抽取的牌为:黑桃K
3、指定抽取一张:
        用户输入序号(1~52)
4、将此牌从小到大显示出来

'''
import random


class Poker:
    num_list = ['A'] + [i for i in range(2,11)] + list('JQK')
    color_list = '黑桃 红桃 方片 梅花'.split()

    def __init__(self,name):
        self.name = name
        self.card = [(color ,num ) for color in self.color_list for num in self.num_list]


    def shuffle(self):
        random.shuffle(self.card)
        return  self.card

    def _random(self):
        random.card = random.choice(self.card)
        return (f'{self.name}您随机抽取的牌为:{random.card[0]},{random.card[1]}')

    def appoint(self):
        appoint_num = int(input('请输入抽取第几张?(1~52)'))
        return (f'{self.name}您抽取的第{appoint_num}牌为:{self.card[appoint_num-1][0]}{self.card[appoint_num-1][1]}')

    def sort(self):
        return [(color ,num ) for num in self.num_list for color in self.color_list ]

    def exit(self):
        exit()


choice_dict = {
    1: Poker.shuffle,
    2: Poker._random,
    3: Poker.appoint,
    4: Poker.sort,
    5: Poker.exit,
}

while 1:
    name = input('请输入用户名').strip()
    obj = Poker(name)
    print('''
        1、洗牌
        2、随机抽取一张
        3、指定抽取一张
        4、从小到大排序
        5、退出
        ''' )
    choice_num = input().strip()
    try:
        print(choice_dict[int(choice_num)](obj))
    except Exception as e:
        print(e)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值