用Python和Kivy玩的小纸牌游戏

2024-10-01 07:47:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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 = []

# 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)

    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)

Tags: ofinself程序formatreturncarddraw
1条回答
网友
1楼 · 发布于 2024-10-01 07:47:37

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

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)

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

相关问题 更多 >