‘’’
作业需求:
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)