模块一后的小作业(棋牌游戏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}/3):").strip

这篇博客介绍了作者在学习Python基础知识后,通过编写棋牌游戏‘11点’来巩固所学,探讨了代码中出现的问题,如用户输入处理、代码冗余等,并提出了优化方案,包括使用enumerate和减少重复代码。
最低0.47元/天 解锁文章
7836

被折叠的 条评论
为什么被折叠?



