如何从每个循环中引用的列表中生成非重复值?

时间:2019-04-14 03:37:36

标签: python python-3.x

我正试图将一张纸牌(王牌到王牌)的面值放到一张乌龟抽奖牌上。整个功能的主要代码使用for每个循环以级联方式将卡放置在板上(接龙样式)。当我使用place_face_value()代码放置一个值时,它会重复数字,此处的其他问题似乎都无法满足我的需求。

我试图用一个已经使用过的值附加一个新列表(您可以在我的代码中看到此尝试的一些残余),并创建一组未使用的值以应用于for每个循环的将来迭代。我无法使它正常工作。

#This function deals with printing the values onto each card
        def place_face_value():
            card_values = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
            position = pos()
            goto(position)
            face_value = sample(card_values, 1)
            values_used = []

            #Goto top left and print value
            seth(90)
            forward(80)
            seth(180)
            forward(55)
            write(face_value)
            #Goto bottom right and print flipped value
            seth(270)
            forward(160)
            seth(0)
            forward(110)
            write_upside_down(face_value)#card value
            goto(position)
            values_used.append(face_value)

#The main code of the function takes the number of cards and prints them accordingly.
        if num_cards > 0:
            which_stack() #choose stack        
            #Place cards, and cascade them by 50px
            for cards in range(num_cards): 
                seth(270)
                forward(50)
                which_suit()
                place_face_value()

基本上,上面的代码需要做现在做的事情(以相同的方式放置卡片并将数字应用到左上角和右下角),但无需重复已放置在同一“堆栈”中的任何值的级联卡(请考虑纸牌列)。我不确定如何使每个循环的每次迭代足够独特,以便我可以打印列表而无需重复(因为每张卡都应该显示不同)。

0 个答案:

没有答案