首页/Python 斗牛小游戏案例(未完成,后续将持续更新)

Python 斗牛小游戏案例(未完成,后续将持续更新)

Muzi 2022-3-21 128 3/21

"""
程序名:斗牛小游戏_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 -

Muzi

4月12日00:20

最后修改:2022年4月12日
0

非特殊说明,本博所有文章均为博主原创。