python随机抽取5张扑克牌,判断是否为顺子

废话不多说,直接上代码,都有注释:

"""
编程语言:python 3.6
系统环境:window10
如果A设置为1,J=11, Q=12, K=13, 大小王设置为0
编程思路:
1.抽取5张牌,即5个数字,把着5个数字放在数组中;
2.采用冒泡排序算法,给这5个数字按照从小到大排序;
3.在数组中进行逻辑运算,如果是顺子,相邻两个数字相减等于1,即list[1]-list[0]是否=1,
把数组中全部相邻的两个数字
都进行这样的逻辑运算,判断最终的结果是不是都为1,如果都为1,即是顺子,其中有一个不为1就不是顺子,出现大小王也不是顺子。
"""
import random
poker = [0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
         9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13]


# 随机抽牌
def get_list():
    my_poker1 = random.choice(poker)  # 从poker中随机抽取第一张牌
    poker.remove(my_poker1)  # 移除数组中被抽取到的牌

    my_poker2 = random.choice(poker)  # 从poker中随机抽取第二张牌
    poker.remove(my_poker2)  # 移除数组中被抽取到的牌

    my_poker3 = random.choice(poker)  # 从poker中随机抽取第三张牌
    poker.remove(my_poker3)  # 移除数组中被抽取到的牌

    my_poker4 = random.choice(poker)  # 从poker中随机抽取第四张牌
    poker.remove(my_poker4)  # 移除数组中被抽取到的牌

    my_poker5 = random.choice(poker)  # 从poker中随机抽取第五张牌
    poker.remove(my_poker5)  # 移除数组中被抽取到的牌

    my_list = [my_poker1, my_poker2, my_poker3, my_poker4, my_poker5]
    return my_list


# 对我已经抽取的5张牌进行排序(从小到大)
def sort_list(my_list):
    for i in range(len(my_list) - 1):  # 这个循环负责设置冒泡排序进行的次数
        for j in range(len(my_list) - i - 1):  # j为列表下标
            if my_list[j] > my_list[j + 1]:
                my_list[j], my_list[j + 1] = my_list[j + 1], my_list[j]
    return my_list


# 逻辑运算,判断这5张牌是不是顺子
def is_shunzi(sorted_list):
    print(sorted_list)

    for l in range(len(sorted_list)):
        if len(sorted_list) - l == 1:
            break
        a = sorted_list[l+1]-sorted_list[l]
        if sorted_list[l] == 0:
            print('5张牌中出现大小王,不是顺子')
            break
        if a != 1:
            print('不是顺子')
            break


def main():
    is_shunzi(sort_list(get_list()))


main()
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈大憨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值