首页 > 其他分享 >在最短时间内出完牌

在最短时间内出完牌

时间:2023-01-12 17:34:59浏览次数:31  
标签:10 set 短时间 完牌 list 张牌 num 内出 card

import random

# 在打完牌后移除该卡片
def remove_card(str_card_list, card_list):
    for i in str_card_list:
        card_list.remove(i)


# 出1张牌
def one_card(card_list):
    return [random.choice(card_list)]


# 出2张牌
def two_card(card_list):
    card_set = set(card_list)
    for card in card_set:
        count = card_list.count(card)
        if count >= 2:
            return [card, card]


# 出5张牌
def five_card(card_list):
    test_list = [
        ["2", "3", "4", "5", "6"],
        ["3", "4", "5", "6", "7"],
        ["4", "5", "6", "7", "8"],
        ["5", "6", "7", "8", "9"],
        ["6", "7", "8", "9", "10"],
        ["7", "8", "9", "10", "J"],
        ["8", "9", "10", "J", "Q"],
        ["9", "10", "J", "Q", "K"],
        ["10", "J", "Q", "K", "A"],
    ]
    for i in test_list:
        if set(i).issubset(set(card_list)):
            return i


# 示例卡牌号码:2 3 4 5 7 8 9 10 J J Q K A
card_list = input("请输入卡牌号码:").split()

# 先一直出5张牌
num = 0
while True:
    try:
        five_card_list = five_card(card_list)
        remove_card(five_card_list, card_list)
        num += 1
    except TypeError:
        break

# 然后出2张牌
while True:
    try:
        two_card_list = two_card(card_list)
        remove_card(two_card_list, card_list)
        num += 1
    except TypeError:
        break

# 最后随机出1张牌
for i in card_list:
    num += 1


print(num)

标签:10,set,短时间,完牌,list,张牌,num,内出,card
From: https://www.cnblogs.com/tiansz/p/17047303.html

相关文章

  • 前端vue中防止用户短时间内多次点击按钮触发点击事件解决方法
    1.按钮点击后添加loading,接口返回成功后再移除loading(经过多次尝试发现,此方法不能完全确保只调用一次接口,第二次添加时仍会多次调用接口),方法如下:html代码:<el-button@......
  • 帮你短时间拿下Git,Git详细教程(浓缩的都是精华)
    Git学习笔记Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。在团队开发中git是必不可少的,它是目前为止最流行的版本控制工具Git......
  • 如何使用Python查询在一个月内出现的重复订单?
    大家好,我是皮皮。一、前言前几天在小小明大佬的Python交流群中遇到一个粉丝问了一个使用Python实现Excel中查询在一个月内出现的重复订单问题,觉得还挺有用的,这里拿出来跟......
  • 1723. 完成所有工作的最短时间
    题目描述给了一个整数数组jobs表示工作,元素ei表示第i个工作需要花费的时间给k个人,每个工作都需要分配,且每个只能给一个人问如果要完成所有工作,求最短的工作时间?f1-状态......
  • 并查集--同时修路得到的最短时间
    题目背景AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。题目描述给出A地区的村庄数NN,和公路数MM,公路是双向的。并告诉你每条公路的连......