📜  随机播放一副纸牌并回答查询(1)

📅  最后修改于: 2023-12-03 14:58:41.143000             🧑  作者: Mango

随机播放一副纸牌并回答查询

在这个项目中,我们将创建一个Python程序,用于随机播放一副纸牌并回答查询。这个程序将随机生成一副纸牌的顺序并将其存储在一个列表中。接着,程序将询问用户想要查询哪张牌,并使用简单的逻辑来回答查询。

程序设计

程序的设计将分为以下几个步骤:

  1. 创建一副扑克牌:对于这个步骤,我们将创建一个函数用于生成一副扑克牌并将其存储在一个列表中。每个扑克牌将由一个元组表示,元组中包含两个元素:牌面和花色。

  2. 随机排列扑克牌:对于这个步骤,我们将使用Python内置的random模块中的shuffle函数来随机排列扑克牌列表。

  3. 询问用户:我们将要求用户输入要查询的牌面和花色。

  4. 回答查询:根据用户的输入,我们将在扑克牌列表中查找并回答查询。

程序实现

以下是程序的实现。请将其保存在一个名为“poker.py”的文件中。

import random

def create_deck():
    """
    创建一副扑克牌
    :return: 由扑克牌元组组成的列表
    """
    faces = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]
    suits = ["spades", "hearts", "diamonds", "clubs"]
    deck = [(face, suit) for face in faces for suit in suits]
    return deck

def shuffle_deck(deck):
    """
    随机排列一副扑克牌
    :param deck: 扑克牌列表
    :return: None
    """
    random.shuffle(deck)

def get_card(deck, face, suit):
    """
    查找一个特定的扑克牌
    :param deck: 扑克牌列表
    :param face: 牌面
    :param suit: 花色
    :return: 若存在牌面和花色与输入相同的牌,则返回该牌的元组,否则返回空元组
    """
    for card in deck:
        if card[0] == face and card[1] == suit:
            return card
    return ()

if __name__ == "__main__":
    deck = create_deck()
    shuffle_deck(deck)
    face = input("请输入牌面:")
    suit = input("请输入花色:")
    card = get_card(deck, face, suit)
    if card:
        print(f"找到了:{card}")
    else:
        print("未找到。")

在程序中,我们首先调用了create_deck函数来生成一副扑克牌。接着,我们使用shuffle_deck函数来随机排列扑克牌列表。然后,我们要求用户输入要查询的牌面和花色。最后,我们调用get_card函数查找并回答查询。

测试程序

请在命令行中运行程序,按照提示输入要查询的牌面和花色。以下是一些测试输入及其对应的输出。

请输入牌面:10
请输入花色:spades
找到了:('10', 'spades')
请输入牌面:K
请输入花色:hearts
找到了:('K', 'hearts')
请输入牌面:Q
请输入花色:clubs
找到了:('Q', 'clubs')
请输入牌面:A
请输入花色:diamonds
找到了:('A', 'diamonds')
请输入牌面:7
请输入花色:clubs
未找到。

你可以试着输入一些其他的牌面和花色进行测试。