python_习题练习_5_小游戏《唐僧大战白骨精》

游戏说明

# 小游戏唐僧大战白骨精

# 1. 身份选择
#     ① 显示提示信息
#         欢迎光临 xxx 游戏 !
#         请选择你的身份:
#             1. xxx
#             2. xxx
#         请选择:x
#     ② 根据用户选择来分配身份(显示不同的提示信息)
#         1. ---
#         2. ---
#         3. ---

# 2. 游戏进行
#     ① 显示玩家的基本信息(攻击力 生命值)
#     ② 显示玩家可以进行的操作:
#         1. 练级
#             - 提升玩家的攻击力和生命值
#         2. 打BOSS
#             - 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击
#             - 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭
#             - 游戏结束
#         3. 逃跑
#             - 退出游戏,显示信息,游戏结束 !

代码演示

print('==========欢迎来到小游戏 < 唐僧大战白骨精 > ==========')

print()

############################################################
# 玩家选择角色

print('请选择你的角色:')
print('     1. 唐僧')
print('     2. 白骨精')

print()

role = int(input('请选择:'))

print()

if role == 1 :
    print('你已经选择了角色:唐僧')
elif role == 2 :
    print('什么?你竟然选择了白骨精!(σ`д′)σ 选择无效 系统将强制为你选择角色:唐僧')
else :
    print('输入不合法,系统将强制为你选择角色:唐僧')

print()

############################################################
#显示角色信息

player_life = 2 #初始化玩家生命值
player_attack = 2 # 初始化玩家生命力
print(f'你的角色信息:(生命值:{player_life},攻击力:{player_attack})')

boss_life = 10 # 初始化BOSS生命值
boss_attack = 10 # 初始化BOSS攻击力
print(f'白骨精的角色信息:(生命值:{boss_life},攻击力:{boss_attack})')

print()

############################################################
# 玩家选择操作

while  player_life > 0 and boss_life > 0:

    print('请选择你想要进行的操作:')
    print('     1. 练级')
    print('     2. 打BOSS')
    print('     3. 逃跑')

    print()

    act = int(input('请选择:'))
    print()

    # 操作1 玩家选择练级

    if act == 1 :
        player_life += 2
        player_attack += 2
        print(f'恭喜你练级成功,升级后的角色信息:(生命值:{player_life},攻击力:{player_attack})')
        print()

    # 操作2 玩家选择打BOSS

    elif act == 2 :
        boss_life -= player_attack

        if boss_life <= 0 :
            boss_life = 0
            boss_attack = 0
            print('你对白骨精发起了攻击')
            print(f'白骨精现在的角色信息:(生命值:{boss_life},攻击力:{boss_attack})')

            print()

            print('白骨精被你打死了,游戏结束')

        else :
            print('你对白骨精发起了攻击')
            print(f'白骨精现在的角色信息:(生命值:{boss_life},攻击力:{boss_attack})')
            
            print()

            player_life -= boss_attack
            if player_life <= 0 :
                player_life = 0
                player_attack = 0
                print('白骨精对你发起了反击')
                print(f'你现在的角色信息:(生命值:{player_life},攻击力:{player_attack})')
                
                print()

                print('你被白骨精打死了,游戏结束')

    # 操作3 玩家选择逃跑

    elif act == 3 :
        print('逃跑成功,游戏结束')
        player_life = 0
        
    # 出现不合法输入的情况

    else :
        print('输入不合法')
        print()

代码优化 2.0版本

# 显示欢迎信息
print('=' * 20, '欢迎来到小游戏《大战白骨精》', '=' * 20) # 两端用分割线让文字居中对齐

# 玩家选择角色
print('请选择你想扮演的角色:')
print('\t1. 正义的普通玩家') # \t 表示 Tab
print('\t2. 邪恶的boss') 
role = input('请输入你的选择(1 or 2):') # 创建变量保存玩家的选择

# 打印一条分割线
print('=' * 60)

# 选择1
if role == '1' :
    print('选择成功,你将以<正义的普通玩家>的身继续游戏')
# 选择2
elif role == '2' :
    print('哈?你竟然选择了<邪恶的boss>!选择无效,系统将自动为你选择角色,你将以<正义的普通玩家>的身份继续游戏')
# 选择3 错误输入
else :
    print('你的输入有误,系统将自动为你选择角色,你将以<正义的普通玩家>的身份继续游戏')

# 打印一条分割线
print('=' * 60) 

# 让玩家选择自定义用户名和boss名
player_name = input('你现在的角色名是<唐僧>,如果你不喜欢这个名字,可以在此处自定义一个名字(按回车可跳过此操作):')
boss_name = input('boss现在的名称是<白骨精>,如果你不喜欢这个名字,可以在此处自定义一个名字(按回车可跳过此操作):')

# 打印一条分割线
print('=' * 60)

# 如果玩家没有自定义用户名,则系统自动使用<唐僧>这个角色名
if player_name == '' :
    player_name ='唐僧'
# 如果玩家没有自定义boss名,则系统自动使用<白骨精>这个角色名
if boss_name == '' :
    boss_name = '白骨精'

# 创建变量保存玩家的生命值和攻击力
player_life = 2
player_attack = 2

# 创建变量保存玩家和boss的生命值和攻击力
boss_life = 10
boss_attack = 10

print(f'操作成功!你的角色名是<{player_name}>,你的生命值是<{player_life}>,你的攻击力是<{player_attack}>')
print(f'boss的角色名是<{boss_name}>')

# 打印一条分割线
print('=' * 60)

while True :
    # 显示玩家可选择的操作
    print('请选择你想要进行的操作:')
    print('\t1. 练级') 
    print('\t2. 打boss') 
    print('\t3. 逃跑')
    act = input('请输入你的选择(1 or 2 or 3):')

    # 打印一条分割线
    print('=' * 60)

    # 玩家选择1 练级
    if act == '1' :
        player_life += 2
        player_attack += 2
        print(f'练级成功!你现在的生命值是<{player_life}>,你现在的攻击力是<{player_attack}>')

        # 打印一条分割线
        print('=' * 60)
    
    # 玩家选择2 打boss
    elif act == '2' :
        boss_life -= player_attack
        print(f'<{player_name}>攻击了<{boss_name}>')

        # 如果boss被打死了,游戏结束
        if boss_life <= 0 :
            print(f'<{boss_name}>受到了<{player_name}>的<{player_attack}>点伤害,重伤不治,死了!')
            print(f'<{player_name}>,恭喜你,赢得了游戏的胜利!GAME OVER !')
            break
        
        # 如果boss没死,对玩家发起反击
        print(f'<{boss_name}>对<{player_name}>发起了反击')
        player_life -= boss_attack

        # 如果玩家被boss打死了,游戏结束
        if player_life <= 0 :
            print(f'<{player_name}>受到了<{boss_name}>的<{boss_attack}>点伤害,重伤不治,死了!')
            print(f'<{boss_name}>赢得了游戏的胜利!GAME OVER !')
            break

        # 如果玩家没死,显示玩家当前信息
        print(f'<{player_name}> ,你现在的生命值是<{player_life}>,你现在的攻击力是 {player_attack}')

        # 打印一条分割线
        print('=' * 60)

    # 玩家选择3 逃跑
    elif act == '3' :
        print(f'看到<{player_name}>要逃跑,<{boss_name}>趁势追上来,一掌把<{player_name}>拍死了!GAME OVER !')
        break

    # 玩家选择4 输入有误
    else :
        print('你的输入有误')

        # 打印一条分割线
        print('=' * 60)
        
# 打印一条分割线
print('=' * 60)

input('按回车退出游戏:')

打包成exe文件

  • 在网上搜了一下怎么打包出来。
  • 一开始是打算打包成apk,但是找到的教程我看不懂,出了问题。
  • 于是打算打包成exe文件,参照这篇教程
  • 这个小游戏2.0版本的下载链接
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值