用Python和Kivy玩的小纸牌游戏

用Python和Kivy玩的小纸牌游戏,python,kivy,Python,Kivy,我正在用Python和Kivy编写一个程序。我想编程一个游戏,程序从skat牌堆中随机发出一张牌(已经很好了!)。然后,每个卡后面都会出现一个任务。任务始终取决于数字或图片:例如,每7点之后,任务“每个人都应该喝3小口!”来吧 有人能帮我吗?不幸的是,我再也找不到了 谢谢你,并致以最良好的问候 其中一个代码(程序的德语输出): 尝试创建一个任务列表,并使用卡片排名作为列表的索引。比如: from random import randint # Global variables cardSuit

我正在用Python和Kivy编写一个程序。我想编程一个游戏,程序从skat牌堆中随机发出一张牌(已经很好了!)。然后,每个卡后面都会出现一个任务。任务始终取决于数字或图片:例如,每7点之后,任务“每个人都应该喝3小口!”来吧

有人能帮我吗?不幸的是,我再也找不到了

谢谢你,并致以最良好的问候

其中一个代码(程序的德语输出):


尝试创建一个任务列表,并使用卡片排名作为列表的索引。比如:

from random import randint

# Global variables
cardSuits = ['PIK', 'HERZ', 'KARO', 'KREUZ']
courtCards = ['BUBE', 'DAME', 'KÖNIG']
cardRanks = ['ASS'] + ['{}'.format(x) for x in range(7, 11)] + courtCards
cardsDrawn = []
tasks = ["unused", "task1", "task2", "task3", "task4", "task5", "task6",  "Everyone should drink 3 sips!", "task8"]

# Functions
def draw_a_card(self, *args):

    # a deck of card has 32 playing cards
    if len(cardsDrawn) >= 32:
        print("\tcards_drawn=", sorted(cardsDrawn))
        return 'Alle Karten wurden ausgeteilt!'
    
    # Example set of 32 playing cards; 8 of each suit clubs, diamonds, hearts, and spades
    suit = randint(1, 4)
    rank = randint(1, 8)
    card = '{0}-{1:02d}'.format(suit, rank)
    the_task = tasks[rank]

    if card not in cardsDrawn:
        cardsDrawn.append(card)
        return '{1} {0}'.format(cardRanks[rank-1], cardSuits[suit-1])
        
    else:
        return draw_a_card(self, args)

也许可以将任务添加到返回字符串。

您可以将卡片排名作为任务列表的索引吗?@JohnAnderson我以前尝试过这个方法,但没有成功。你能告诉我怎么做吗?那我再试一次。非常感谢,那帮了大忙!但是,任务尚未显示在输出中。这和Kivy有关吗?或者这仍然是由于Python代码造成的?您可以添加一行:
print(the_任务)
。谢谢!现在,它起作用了。
from random import randint

# Global variables
cardSuits = ['PIK', 'HERZ', 'KARO', 'KREUZ']
courtCards = ['BUBE', 'DAME', 'KÖNIG']
cardRanks = ['ASS'] + ['{}'.format(x) for x in range(7, 11)] + courtCards
cardsDrawn = []
tasks = ["unused", "task1", "task2", "task3", "task4", "task5", "task6",  "Everyone should drink 3 sips!", "task8"]

# Functions
def draw_a_card(self, *args):

    # a deck of card has 32 playing cards
    if len(cardsDrawn) >= 32:
        print("\tcards_drawn=", sorted(cardsDrawn))
        return 'Alle Karten wurden ausgeteilt!'
    
    # Example set of 32 playing cards; 8 of each suit clubs, diamonds, hearts, and spades
    suit = randint(1, 4)
    rank = randint(1, 8)
    card = '{0}-{1:02d}'.format(suit, rank)
    the_task = tasks[rank]

    if card not in cardsDrawn:
        cardsDrawn.append(card)
        return '{1} {0}'.format(cardRanks[rank-1], cardSuits[suit-1])
        
    else:
        return draw_a_card(self, args)