使用 Python 和 Kivy 的小型纸牌游戏
Posted
技术标签:
【中文标题】使用 Python 和 Kivy 的小型纸牌游戏【英文标题】:small card game with Python and Kivy 【发布时间】:2021-07-04 20:00:00 【问题描述】:我正在使用 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)
【问题讨论】:
你能用卡片排名作为任务列表的索引吗? @JohnAnderson 我以前试过这个,但做错了。你能告诉我怎么做吗?那我再试一次。 【参考方案1】:尝试创建一个任务列表并使用卡片排名作为列表中的索引。比如:
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)
也许将任务添加到返回字符串中。
【讨论】:
非常感谢,帮了大忙!但是,任务尚未显示在输出中。跟基维有关系吗?还是因为 Python 代码? 可以加一行:print(the_task)
.以上是关于使用 Python 和 Kivy 的小型纸牌游戏的主要内容,如果未能解决你的问题,请参考以下文章
实战用Python+Pygame+Kivy(Buildozer)+Ubuntu开发安卓android手机端apk游戏及踩坑分享
不能让 id 在 Python 中工作! Kivy 新手需要帮助