基于Python完成的《棋牌游戏11点》游戏

这篇博客介绍了作者在学习Python基础知识后,通过编写棋牌游戏‘11点’来巩固所学,探讨了代码中出现的问题,如用户输入处理、代码冗余等,并提出了优化方案,包括使用enumerate和减少重复代码。
摘要由CSDN通过智能技术生成

模块一后的小作业(棋牌游戏11点)

经过对模块一python基础知识的学习后,对已学知识进行实战练习,目的也是为了巩固和掌握其语法知识。
虽然小游戏实现难度不大,但贵在基本是自己慢慢写出来的代码吧哈哈哈。一步一步来,问题不大。

游戏题目及要求如下:

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

代码实现如下:

import random

# 新建一个扑克花色表
poke_color = ["红桃", "黑桃", "方块", "梅花"]

# 新建一个扑克数值列表
num_list = []
for i in range(1, 14):
    num_list.append(i)

# 创建一副新的扑克牌及各牌对应代表分数的列表,如[('红桃', 7 , 7),('黑桃', 12 , 0.5)...]
total_poke_list = []
for color in range(len(poke_color)):
    for num in range(1, 14):
        if num < 11:
            data = (poke_color[color], num_list[num - 1], num_list[num - 1])
            total_poke_list.append(data)
        else:
            data = (poke_color[color], num_list[num - 1], 0.5)
            total_poke_list.append(data)
special_poke = [('小王', 14, 0.5), ('大王', 15, 0.5)]
total_poke_list.extend(special_poke)

print('游戏开始'.center(50, '-'))

# 自定义录入三名玩家姓名
user_list = []
for i in range(3):
    user_input = input(f"请输入玩家{
     i + 1}号的姓名({
     i + 1}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值