我将如何使该代码再洗两次牌以完成卡片技巧?

问题描述

现在,我正在研究21张卡片的技巧,但遇到了似乎无法破解的错误。

def combine_columns_basedoncard(split_card_deck,TotalCardDeck):
   
    split_card_deck = deal_deck_columns(TotalCardDeck)
    for i in range(3):
        card_deck = []
        card_deck2 = []
        card_deck3 = []
        for i in range(0,21,3):
            card_deck.append(subdeck[0 + i])
            card_deck2.append(subdeck[1 + i])
            card_deck3.append(subdeck[2 + i])

        DealedCards = card_deck,card_deck2,card_deck3
        Choice()
        
        if (Choice == 1):
            subdeck.extend(card_deck2)
            subdeck.extend(card_deck)
            subdeck.extend(card_deck3)
        elif (Choice == 2):
            subdeck.extend(card_deck)
            subdeck.extend(card_deck2)
            subdeck.extend(card_deck3)
        else:
            subdeck.extend(card_deck)
            subdeck.extend(card_deck3)
            subdeck.extend(card_deck2)

        print(DealedCards)

这是一个随机播放卡片组的功能,然后用户可以选择其卡片所在的桩/子甲板,但是,此代码只会随机播放一次,然后再也不会随机播放并打印相同的列表,我看不到为什么会这样,或者我将如何再次洗牌以完成21张牌技巧。如果有人可以提出一些建议,将不胜感激!

编辑:

def Choice():
    VaildChoice = False
    ColumnChoice = ""
    while(not VaildChoice):
        ColumnChoice = input("Which column is your card in? 1,2 or 3 ")
        if("1" in ColumnChoice or "2" in ColumnChoice or "3" in ColumnChoice):
            VaildChoice = True
        else:
            print("Invaild choice")
    return ColumnChoice

添加了choice()以便更好地理解代码!

解决方法

原因是因为您要扩展副甲板。扩展副甲板时,新元素将插入到末尾。在下一次迭代中,您的副甲板长度已延长,但是第一组卡片仍然相同,并且从未被替换。

要在Choice()之后将此初始化子面板修复为空列表

您的外循环迭代器和内循环迭代器也都命名为i。检查使用情况。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...