【无标题】扑克牌-比点数

‘’’
作业需求:
1、生成一副扑克牌(自己设计扑克牌的结构,小王和大王分别用14、15表示)

2、3个玩家(玩家可以自定义)
user_list = ["abram","megn","jam"]

3、发牌规则
默认先给用户发一张牌,其中J,Q,K,小王,大王的代表值为0.5,其他就是当前牌面的值
用户根据自己的情况判断是否继续要牌
    要:则给他再发一张(可以一直要牌,但是如果自己手中的牌总和超过11点,则牌爆(牌面值清空为0))
    不要:则开始给下个玩家发牌。(无牌者,牌面默认为0)
如果用户手中的牌相加大于十一,则牌爆。此人牌面为0,自动给下个玩家发牌。

4、最终计算每个玩家的分值,例如。
result = {
"abram":8,
"megn":10,
"jam":0
}

必备技术点:随机抽牌
import random
total_poke_list=[("红桃",1),("黑桃",1),......("小王",1),("大王",1)]

#生成一个随机数,当做索引。
index = random.randint(0,len(total_poke_list)-1)
#获取牌
print("抽取的牌为:",total_poke_list[index])
#剔除这张牌
total_poke_list.pop(index)
print("抽完之后,剩下的牌为:",total_list_poke)

‘’’

import random

生成扑克牌

pokes = [
(f’{number}-{color}', 0.5 if number > 10 else number)
for number in range(1, 14)
for color in (“黑桃”, “红桃”, “梅花”, “方块”)
]
pokes.append((‘小王’, 0.5))
pokes.append((‘大王’, 0.5))

random.shuffle(pokes) # 打乱列表

users = [‘张三’, ‘李四’, ‘王二麻’]

result = {}

for user in users:
while True:
random_number = input(f’{user}请选牌>>>‘).strip()
if not random_number.isdigit():
print(“输入错误,请输入序号1-剩余牌:”)
continue
random_number = int(random_number)
if not (1 <= random_number<= len(pokes)):
print(“输入错误请选择1-剩余牌:”)
continue
if (1 <= random_number <= len(pokes)):
poke, score = pokes.pop(random_number-1)
print(“选择的牌是:”, poke, score)
current_score = result.get(user, 0) # 获取当前分值,获取不到分数为0
if current_score + score > 11:
print(f’{user}分爆掉了’)
result[user] = 0
break
else:
result[user] = current_score + score
is_continue = input(f’{user}是否继续要牌,当前分值{result[user]}。Y继续,N退出’).strip().upper()
if is_continue == “Y”:
continue
else:
break
print(result)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值