Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.3 洗牌与抽牌

总项目目标:用面向过程思想设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积分。为后续对比面向对象编程思想做准备。

 

项目1.3   洗牌与抽牌

import random

SUIT_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 = []
for suit in SUIT_TUPLE:
    for thisValue, rank in enumerate(RANK_TUPLE):
        cardDict = {'rank': rank, 'suit': suit, 'value': thisValue + 1}
        startingDeckList.append(cardDict)

gameDeckList = shuffle(startingDeckList)
currentCardDict = getCard(gameDeckList)

print(gameDeckList)
print(currentCardDict)

效果如下:

 程序分析:

程序包含了洗牌和抽牌操作,用于模拟一副牌的洗牌和抽取过程。

代码导入了random模块,shuffle()函数接受一个牌组列表作为参数,首先使用copy()方法生成牌组的副本deckListOut,然后使用random.shuffle()函数对副本进行洗牌操作,打乱牌组顺序。最后,函数返回洗牌后的牌组副本deckListOut

getCard()函数接受一个牌组列表deckListIn作为参数,通过pop()方法从牌组中移除并返回第一张牌,即列表的最后一个元素。

使用嵌套的循环结构生成一副完整的牌组, 放在列表startingDeckList中

代码调用shuffle()函数将初始牌组startingDeckList洗牌得到洗牌后的牌组gameDeckList

调用geCard()函数抽取一张牌

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值