"""
程序名:斗牛小游戏_Muzi
游戏规则:
在纸牌斗牛规则里:大小王除外,52张牌,K最大,A最小,J,Q,K都是10点,然后点数依次排列最后A是1点。
牌局开始每个人抓五张牌,玩家需要将手中三张牌10点的倍数,称为“牛”。其余的两张牌加起来算点数,去掉十
位只留个位数来进行比较,如果剩下两张正好是10点,根据纸牌斗牛规则,这副牌就是“斗牛”。
思路:
1、将J、Q、K==10,输出的时候让他给用户呈现的是这个,然后判断有牛是牛几
2、增加算法,用户可以增加倍数,然后计算出几倍,赢了多少,输了多少
3、优化整理,给终端实现使人愉悦的GUI界面
4、然后后续实现多用户操作,不是和电脑互动,制作小型服务器(这得后续学习以后才能实现)
判断:
一副牌52张,玩家和人机进行互动,但是每张牌出现的次数不能<4,如果<4那么多出来的牌就要进行重新生成一个随机数,在进行判断是否还<4
J、Q、K还需要重新判断,后续学习使用class以后使用class对象继承
"""
#导入随机库,随机数为(1-10)
import random
#生成随机5个数
rand1=random.randint(1,13)
rand2=random.randint(1,13)
rand3=random.randint(1,13)
rand4=random.randint(1,13)
rand5=random.randint(1,13)
#计算求分配到的5张手牌的不同概率,然后求出余数是否==0,如果余数==0则表示有牛,然后在下一步计算求出另外两张手牌的余数为多少,则表示牛几
s1=(rand1 + rand2 +rand3) %10
s2=(rand1 + rand2 +rand4) %10
s3=(rand1 + rand2 +rand5) %10
s4=(rand1 + rand3 +rand4) %10
s5=(rand1 + rand3 +rand5) %10
s6=(rand1 + rand4 +rand5) %10
s7=(rand2 + rand3 +rand4) %10
s8=(rand2 + rand3 +rand5) %10
s9=(rand2 + rand4 +rand5) %10
s10=(rand3 + rand4 +rand5) %10
# print(rand1,rand2,rand3,rand4,rand5)
# print(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10)
def estimate():
def Replace():
global rand1,rand2,rand3,rand4,rand5
if rand1 == 11:
print('您的手牌为:J {} {} {} {}'.format(rand2, rand3, rand4, rand5))
rand1 = 10
elif rand1 == 12:
print('您的手牌为:Q {} {} {} {}'.format(rand2, rand3, rand4, rand5))
rand1 = 10
elif rand1 == 13:
print(('您的手牌为:K {} {} {} {}'.format(rand2, rand3, rand4, rand5)))
rand1 = 10
# 计算第二个随机数
if rand2 == 11:
print('您的手牌为:{} J {} {} {}'.format(rand1, rand3, rand4, rand5))
rand2 = 10
elif rand2 == 12:
print('您的手牌为:{} Q {} {} {}'.format(rand1, rand3, rand4, rand5))
rand2 = 10
elif rand2 == 13:
print('您的手牌为:{} K {} {} {}'.format(rand1, rand3, rand4, rand5))
rand2 = 10
# 计算第三个随机数
if rand3 == 11:
print('您的手牌为:{} {} J {} {}'.format(rand1, rand2, rand4, rand5))
rand3 = 10
elif rand3 == 12:
print('您的手牌为:{} {} Q {} {}'.format(rand1, rand2, rand4, rand5))
rand3 = 10
elif rand3 == 13:
print('您的手牌为:{} {} K {} {}'.format(rand1, rand2, rand4, rand5))
rand3 = 10
# 计算第四个随机数
if rand4 == 11:
print('您的手牌为:{} {} {} J {}'.format(rand1, rand2, rand3, rand5))
rand4 = 10
elif rand4 == 12:
print('您的手牌为:{} {} {} Q {}'.format(rand1, rand2, rand3, rand5))
rand4 = 10
elif rand4 == 13:
print('您的手牌为:{} {} {} K {}'.format(rand1, rand2, rand3, rand5))
rand4 = 10
# 计算第五个随机数
if rand5 == 11:
print('您的手牌为:{} {} {} {} J'.format(rand1, rand2, rand3, rand4))
rand5 = 10
elif rand5 == 12:
print('您的手牌为:{} {} {} {} Q'.format(rand1, rand2, rand3, rand4))
rand5 = 10
elif rand5 == 13:
print('您的手牌为:{} {} {} {} K'.format(rand1, rand2, rand3, rand4))
rand5 = 10
return Replace
Replace()
# 判断求余余数是否为0,若==0,则表示有牛,若!=0,则表示没有牛
def estrand():
#有牛,后续在嵌套if判断为牛几
# 判断牛几
if s1 == 0:
Result = (rand4 + rand5) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s2 == 0:
Result = (rand3 + rand5) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s3 == 0:
Result = (rand3 + rand4) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s4 == 0:
Result = (rand2 + rand5) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s5 == 0:
Result = (rand2 + rand4) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s6 == 0:
Result = (rand2 + rand3) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s7 == 0:
Result = (rand1 + rand5) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s8 == 0:
Result = (rand1 + rand4) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s9 == 0:
Result = (rand1 + rand3) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
elif s10 == 0:
Result = (rand1 + rand2) % 10
if Result == 0:
print('牛牛!')
else:
print('牛:',Result)
else:
print('你的手牌中没牛')
return estrand
estrand()
estimate()
个人实力有限,深深的感受到了好多地方的不足,准备继续学习一段时间以后再继续更新,重新从头开始写,计算好判断
后续计划:
1、把class类学清楚,然后熟练的使用class类
2、重新写的时候更多的地方写好注释,将变量的定义名写规范,将代码写整齐、简洁,让人看到就很愉悦
3、后续更新...
- THE END -
最后修改:2022年4月12日
非特殊说明,本博所有文章均为博主原创。