基于Python——棋牌游戏11点

本文介绍了如何使用Python编程语言实现一个基于11点规则的棋牌游戏,包括创建扑克牌、发牌机制、玩家决策和计算得分过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Python——棋牌游戏11点

作业需求:
1、生成一副扑克牌(自己设计扑克牌的结构,小王和大王可以分别用14、15表示 )
2、3个玩家
3、发牌规则
默认先给用户发一张牌,其中 J、Q、K、小王、大王代表的值为0.5,其他就是则就是当前的牌面值。
用户根据自己的情况判断是否继续要牌。
要,则再给他发一张。(可以一直要牌,但是如果自己手中的牌总和超过11点,你的牌就爆掉了(牌面变成0))
不要,则开始给下个玩家发牌。(没有牌则则牌面默认是0)
如果用户手中的所有牌相加大于11,则表示爆了,此人的分数为0,并且自动开始给下个人发牌。
4、最终计算并获得每个玩家的分值

import random

# 定义扑克牌
kind_list = ['黑桃', '方块', '红心', '梅花']   # 四种花色
number_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0.5, 0.5, 0.5]   # 一种花色中13张牌
cards_list = [('大王', 0.5), ('小王', 0.5)]   # 大小王
for i in kind_list:
    for j in number_list:
        cards_tuple = (i, j)
        cards_list.append(cards_tuple)
random.shuffle(cards_list)

# 定义玩家,设置各玩家初始牌面值
user_list = ['张三', '李四', '王五']
result = dict()
for user in user_list:
    result.setdefault(user, 0)
    data = cards_list.pop(0)[1]
    result[user] = data

# 发牌
k = 0   # 变量k用来控制玩家的索引
print('游戏开始')
while cards_list:
    k = k % 3
    text = '\n{},您现在的牌总和为:{}\n目前还有{}张牌,分别是:\n{}'.format(user_list[k], result[user_list[k]], len(cards_list), cards_list)
    print(text)
    ans = input('是否继续要牌(要/不要):')
    if ans != '要' and ans != '不要':
        print('输入错误,请按提示输入。')
        continue
    elif ans == '不要':
        k += 1
    else:
        random.shuffle(cards_list)
        data = cards_list.pop(0)[1]
        result[user_list[k]] += data
        if result[user_list[k]] >= 11:
            result[user_list[k]] = 0
            k += 1

# 输出结果
print('牌已发完,游戏结束')
print(result)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值