一对Python的概率

问题描述 投票:0回答:1

我正在尝试制作一种扑克游戏,它将检查它是一对还是三对或四对。

我正在尝试找出在何处插入while循环。如果我应该将其放在for card in set(cards):语句或for i in range(5):的前面

我想继续打印5张卡,直到显示成对,3张或4张。

然后我想做的是打印出打印这些选项之一的概率

import random
def poker():
    cards = []
    count = 0
    for i in range(5):
        cards.append(random.choice([1,2,3,4,5,6,7,8,9,10,11,12,13]))
        print(cards)
    for card in set(cards):
        number = cards.count(card) # Returns how many of this card is in your hand
        print(f"{number} x {card}")
        if(number == 2):
            print("One Pair")
            break
        if(number == 3):
            print("Three of a kind")
            break
        if(number == 4):
            print("Four of a kind")
            break
python random poker
1个回答
0
投票

您应该将while放在卡的上方,但要将count置于该循环之外,以便对其进行维护。这样做是因为您每次都需要重复整个卡的创建/选择过程,直到满足所需条件为止。

import random
def poker():
    count = 0
    while True:
        cards = []
        for i in range(5):
            cards.append(random.choice([1,2,3,4,5,6,7,8,9,10,11,12,13]))
            print(cards)
        stop = False
        for card in cards:
            number = cards.count(card) # Returns how many of this card is in your hand
            print(f"{number} x {card}")
            if(number == 4):
                print("Four of a kind")
                stop = True
                break
            elif(number == 3):
                print("Three of a kind")
                stop = True
                break
            elif(number == 2):
                print("One Pair")
                stop = True
                break
        if stop:
            break
        else:
            count += 1
    print(f'Count is {count}')
© www.soinside.com 2019 - 2024. All rights reserved.