本文主要是介绍Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.4 打印牌的点数和花色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
总项目目标:用面向过程思想设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积分。为后续对比面向对象编程思想做准备。
项目1.4 打印抽出牌的点数和花色
import randomSUIT_TUPLE = ('黑桃', '红心', '梅花', '方块')
RANK_TUPLE = ('A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K')#洗牌函数
def shuffle(deckListIn):deckListOut = deckListIn.copy() # 生成一副牌的副本random.shuffle(deckListOut) # 洗牌return deckListOut#抽牌函数
def getCard(deckListIn):thisCard = deckListIn.pop() # 从牌组中取第一张牌return thisCard#存储生成的初始牌组
startingDeckList = []#两个嵌套的循环创建一个包含牌的字典cardDict,其中包括点数、花色和用于比较大小的值
#并将各张牌的字典添加到startingDeckList列表中。
for suit in SUIT_TUPLE:for thisValue, rank in enumerate(RANK_TUPLE):cardDict = {'rank': rank, 'suit': suit, 'value': thisValue + 1}startingDeckList.append(cardDict)#洗牌,将返回的洗牌后的牌组赋值给gameDeckList
gameDeckList = shuffle(startingDeckList)#抽取一张牌,将该牌的信息以字典形式保存在currentCardDict中
currentCardDict = getCard(gameDeckList)#通过字典索引将抽取的牌的点数、花色和用于比较大小的值分别赋值
currentCardRank = currentCardDict['rank']
currentCardValue = currentCardDict['value']
currentCardSuit = currentCardDict['suit']#打印输出当前抽取的牌的信息,包括花色和点数,以及用于比较大小的值
print('当前抽出的牌是', currentCardSuit+currentCardRank)
print("当前抽出的牌用于比较大小的值为", currentCardValue)
效果如下:
程序分析:
这段程序的功能是模拟一副扑克牌的洗牌和抽牌过程,并输出当前抽取的牌的信息。
程序定义了两个函数用于洗牌和抽牌
接下来,创建一个空列表startingDeckList
,用于存储生成的牌组。
通过两个嵌套的循环创建一个包含牌的字典cardDict
,其中包括点数、花色和用于比较大小的值,并将该字典添加到startingDeckList
列表中。
接下来,调用shuffle()
函数对startingDeckList
进行洗牌,将返回的洗牌后的牌组赋值给gameDeckList
。
然后,调用getCard()
函数从洗牌后的牌组gameDeckList
中抽取一张牌,将该牌的信息以字典形式保存在currentCardDict
中。
通过字典索引将抽取的牌的点数、花色和用于比较大小的值分别赋值给currentCardRank
、currentCardSuit
和currentCardValue
变量。
最后,程序打印输出当前抽取的牌的信息,包括花色和点数,以及用于比较大小的值。
注意:由于牌组是随机洗牌的,每次运行程序的结果可能不同。
这篇关于Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.4 打印牌的点数和花色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!