当前位置:   article > 正文

python小游戏_课程设计_期末大作业——小游戏合集(含源代码)_python大作业小游戏

python大作业小游戏

设计小游戏盒子

本文代码链接 点击直接下载 https://download.csdn.net/download/Wps1919/87103302?spm=1001.2014.3001.5501

如将(猜拳游戏,骰子猜点数大小)运用于同一个游戏盒子中,用户可以键入关键字来实现选择游戏,进行游戏,切换游戏,退出程序等功能,同时该游戏盒子呈开放状态,随时都可以添加新游戏,并互相不影响,即可模拟现实中软件更新,游戏上新!
相关流程图

现给出示例代码如下(可直接用于小游戏程序设计期末大作业)

代码可更换,可创新,点赞收藏直接使用

游戏盒子加载模块,模拟真实的APP开启界面,代替直接显示菜单,给予用户真实感!
def youxihezi():
    import time
    t = 500
    for n in range(t+1):
        loading = round(n/t*100)
        #通过加\r每次输出完跳回,用end=""替换默认的换行,只要数字在改变,因此表面上展现进度刷新
        print(f"\r游戏盒子加载中....   {loading}%",end="")
        #由于没有放入复杂程序,如果直接打印,展示不出效果,因此用time.sleep模拟加载过程
        time.sleep(0.0001)
 print("\n")
    time.sleep(1)
    caidan()

# 游戏盒子菜单函数
def caidan():
    print('小游戏盒子'.center(50, '*'))#用center将文字显示于中间,并用50各*字符填充制作基本菜单样式
    print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
    print('*', end='')
    print("1.猜拳游戏".center(49), end='')
    print('*')
    print('\n')
    print('*', end='')
    print("2.猜大小 ".center(49), end='')###################制作小游戏界面,同时采用time模块模拟游戏盒子的加载界面
    print(' *')
    print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
    print('*' * 54)#字符串*54就是输出54个相同字符串
    s = int(input("\n请选择一个游戏(输入0退出小游戏盒子T_T):"))
    if s == 2:
        print('-----猜大小-----')
        caidaxiao()
    elif s == 1:
        print('---猜拳游戏----')
        caiquan()
    else:
        print('即将退出游戏盒子,欢迎下次游玩!')
        exit()
    
## 猜拳游戏函数
def caiquan():
    
    import time
    t = 100
    for n in range(t+1):
        loading = round(n/t*100)
        #通过加\r每次输出完跳回,用end=""替换默认的换行,只要数字在改变,因此表面上展现进度刷新
        print(f"\r加载中{loading}%",end="")
        #由于没有放入复杂程序,如果直接打印,展示不出效果,因此用time.sleep模拟加载过程
        time.sleep(0.01)

    print('\n--------------猜拳游戏----------------\n\n')
    import random  #导入随机模块
    
    ying = 0
    shu = 0
    while True:
        if shu == 2:
            print('\n\n三局两胜  你输了!\n游戏结束!')
            youxi()
        elif ying == 2:
            print('\n\n三局两胜  你赢了!\n游戏结束!')
            youxi()
        user = int(input('请出拳 0(石头) 1(剪刀) 2(布):'))
        if user > 2:
            print('没有这个手势哦!请重新输入!')
        else:
            data = ['石头', '剪刀', '布']
            com = random.randint(0, 2)
            print('您出的是',data[user],'电脑出的是',data[com])
            if user == com:
                print('平局')
                continue
            elif (user == 0 and com == 1) or (user == 1 and com == 2) or (user == 2 and com == 0):
                print('你赢了')
                ying += 1
            else:
                print('你输了')
                shu += 1
#是否进行新游戏的判断函数
def youxi():
    q = int(input('是否继续游戏?\n键入0退出该游戏,返回游戏盒子\n键入1开始新游戏\n键入2直接退出整个游戏盒子\n'))
    if q == 0:
        caidan()
    elif q == 1:
        caiquan()
    elif q == 2:
        print('\n即将退出游戏盒子,欢迎下次游玩!\n')
        exit()
def youxi1():
    q = int(input('是否继续游戏?\n键入0退出该游戏,返回游戏盒子\n键入1开始新游戏\n键入2直接退出整个游戏盒子\n'))
    if q == 0:
        caidan()
    elif q == 1:
        caidaxiao()
    elif q == 2:
        print('\n即将退出游戏盒子,欢迎下次游玩!\n')
        exit()
## 猜大小游戏函数
def caidaxiao():
    import time
    import random
    # 让用户注册
    name = input('请填写用户名:')
    age = int(input('您好,请输入您年龄:'))
    user_info = {'name': name, 'age': age}  # 用户信息
    user_properties = ['X3 x1-5']  # 用于存放用户道具 默认道具
    properties = ['X3 (250G)', 'X1-5 (300G)']  # 道具列表 显示用

    # 根据用户年龄 给与不同的初始金币
    if 10 < user_info['age'] < 18:
        glod = 1000
    elif 18 <= user_info['age'] <= 30:
        glod = 1100
    else:
        glod = 500
    user_info['glod'] = glod

    # 输出相关提示信息
    print("{}您好,欢迎游玩本游戏,您的初始金币为:{}".format(user_info['name'], user_info['glod']))
    print("\n")
    time.sleep(1)
    print('游戏说明'.center(50, '*'))#用center将文字显示于中间,并用50各*字符填充制作基本菜单样式
    print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
    print('*', end='')
    print("电脑每次投掷三枚骰子,总点数>=10为大,否则为小".center(32), end='')
    print('*')
    print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
    print('*' * 54)#字符串*54就是输出54个相同字符串
    print("\n")

    # 开始游戏
    result = input('是否开始游戏 yes or no :  ')
    
    if (result.lower() == 'yes'):
        while True:
            dices = []
            # 开始投掷
            for i in range(0, 3):
                dices.append(random.randint(1, 6))
            total = sum(dices)  # 计算总和
            user_input = input('请输入big OR small : ')  # 等待用户输入
            u_input = user_input.strip().lower()
            time.sleep(1)
            # 判断用户输入
            print('骰子点数为:{}'.format(dices), end=' ')
            if (total >= 10 and u_input == 'big') or (total < 10 and u_input == 'small'):
                print('您赢了!!!')
                multi = 1  # 倍数
                if len(user_properties) > 0:  # 如果用户有道具 选择是否使用道具
                    use_pro = input('是否使用道具: ')
                    if use_pro.lower() == 'yes':
                        use_pro = int(input('请选择使用第几个道具{} :'.format(user_properties)))
                        use_pro -= 1
                        # 判断道具类型
                        if user_properties[use_pro] == 'X 3':
                            multi = 3
                            print('奖金翻3倍')
                        elif user_properties[use_pro] == 'X 1-5':
                            multi = random.randint(1, 5)
                            print('奖金翻{}倍'.format(multi))
                        user_properties.remove(user_properties[use_pro])  # 删除道具
                user_info['glod'] += 100 * multi;  # 金额增加
            else:
                print('您输了!')
                user_info['glod'] -= 100;  # 错误 用户金币减 100
            # 判断用户金币 是否够下次玩 不够则退出程序
            if (user_info['glod'] <= 0):
                print('您的金币已经用完,感谢您的游玩')
                break
            if user_info['glod'] % 1000 == 0:  # 用户金币 是1000的倍数是 可购买道具
                shop = input('您现在有金币:{},是否购买道具 yes or no: '.format(user_info['glod']))
                if shop.lower() == 'yes':
                    good_num = int(input('请选择要购买第几个道具 {}'.format(properties)))
                    if good_num == 1:
                        user_properties.append('X 3')  # 给用户添加道具
                        user_info['glod'] -= 250
                        print('购买成功!消耗金币250')
                    elif good_num == 2:
                        user_properties.append('X 1-5')  # 给用户添加道具
                        user_info['glod'] -= 300  # 用户金币减 300
                        print('购买成功!消耗金币300')
                    else:
                        print('没有该道具,您失去了这次机会')
            else:
                print('您现在有金币:{} '.format(user_info['glod']))
    else:
        youxi1()
## 调用函数以进行游戏盒子程序
youxihezi()

##程序结束

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/318909
推荐阅读
相关标签
  

闽ICP备14008679号