猫史档案馆


【Python作品分享】神奇的勇者大冒险1.0(easygui)【作品秀】

用户:echo"老嘤"echo"老嘤"查看:0 回复:1 评论:0 创建时间:2020-06-13T22:28:58


【作品展示】

center_image

 

【作品介绍】

这个是一个easygui函数制作的文字游戏目前不提供存档保护。。。正在更新

 

【作品源代码】

import easygui as e
import random
生命 = 100
等级 = 1
经验 = 0
金钱 = 0
木材 = 0
石头 = 0
宝石 = 0
线 = 0
ATK = int(random.randint(5, 15))
DEF = int(random.randint(5, 10))
打怪 = '打怪'
武器店 = '武器店'
防具店 = '防具店'
冒险 = '冒险'
返回 = '返回'
挖矿 = '挖矿'
退出 = '退出'
背包 = '背包'
苹果数量 = 0
title = '勇者大冒险'

攻击 = '攻击'
逃跑 = '逃跑'
使用苹果 = '使用苹果'
继续攻击 = '继续攻击'

小刀 = '小刀'
长剑 = '长剑'
大喵 = '大喵'
巨剑 = '巨剑'
屠龙刀 = '屠龙刀'

买 = '买'
不买 = '不买'

砍伐大树 = '砍伐大树'
采石 = '采石'


小怪物_atk = 10
小怪物_def = 2
小怪物_life = 30


巨齿龙_atk = 20
巨齿龙_def = 10
巨齿龙_life = 80


def use_apple():
    global 苹果数量
    global 生命
    if 苹果数量 > 0:
        苹果数量 -= 1
        生命 += 10
        e.msgbox('你用掉一个苹果,现在生命为%d,还剩余%d个苹果' % (生命, 苹果数量))
        fight_小河边()
    else:
        e.msgbox('你的苹果数量不足,请去打怪后获得')
        fight_小河边()


def use_apple10():
    global 苹果数量
    global 生命
    if 苹果数量 > 0:
        苹果数量 -= 1
        生命 += 10
        fight_小森林()
    else:
        e.msgbox('你的苹果数量不足,请去打怪后获得')
        fight_小森林()


def beibao():
    beibao_name = ('''
                     木材有%d 个,
                     石头有%d 个,
                     宝石有%d 个,
                     苹果有%d 个,
                     攻击力 %d ,
                     防御力 %d ''' % (木材, 石头, 宝石, 苹果数量, ATK, DEF))
    beibao_val = []
    beibao_val = e.msgbox(beibao_name, title)
    主界面()


def fight():
    fight_msg = '请问你想去哪里冒险'
    小河边 = '小河边'
    小森林 = '小森林'
    雪山 = '雪山'
    where = e.buttonbox(fight_msg, title, choices=(小河边, 小森林, 雪山, 返回))
    if where == '小河边':
        fight_小河边()
    if where == '小森林':
        fight_小森林()
    if where == '雪山':
        fight_雪山()
    else:
        主界面()


def fight_小河边():
    小怪物_msg = '小怪物 攻击力 10, 防御力 2 , 生命 30'
    fight_小怪物 = e.buttonbox(小怪物_msg, title, choices=(攻击, 逃跑, 使用苹果, 返回))
    if fight_小怪物 == '攻击':
        gongji()
    if fight_小怪物 == '逃跑':
        e.msgbox('你已逃出来')
        fight()
    if fight_小怪物 == '返回':
        主界面()
    else:
        use_apple()


def 开始打怪10():
    巨齿龙_msg = '巨齿龙 攻击力 20, 防御力 10 , 生命 80'
    fight_巨齿龙 = e.buttonbox(巨齿龙_msg, title, chioices=(攻击, 逃跑, 使用苹果, 返回))
    if fight_巨齿龙 == '攻击':
        巨齿龙_gongji()
    if fight_巨齿龙 == '逃跑':
        e.msgbox('你已逃出来')
        fight()
    if fight_巨齿龙 == '返回':
        主界面()
    else:
        use_apple10()


def gongji():
    global 生命
    global 经验
    global 等级
    global 苹果数量
    damge = ATK - 小怪物_def
    小怪物_newlife = 小怪物_life - damge
    生命 = 生命 + (DEF - 小怪物_atk)
    if 生命 > 0:
        if 小怪物_newlife <= 0:
            苹果数量 += 1
            经验 += 20
            e.msgbox('恭喜你胜利了,获得一个苹果, 获得20点经验,当前苹果数为%d,当前经验为%d' % (苹果数量, 经验))
            if 经验 >= 100:
                等级 += 1
                e.msgbox('恭喜你升级了等级-->%d' % 等级)
                经验 -= 100
            fight_小河边()
        elif 生命 < 0:
            e.msgbox('你已经喵了,重新开始')
            生命 = 100
            主界面()
        else:
            while 小怪物_newlife > 0:
                e.msgbox('小怪物剩余血量%d, 你剩余生命%d' % (小怪物_newlife, 生命))
                小怪物_choices = e.buttonbox(
                    '小怪物还剩余%d的血' % 小怪物_newlife, title, choices=(继续攻击, 使用苹果, 逃跑))
                if 小怪物_choices == '继续攻击':
                    小怪物_newlife -= damge
                    e.msgbox('小怪物剩余血量%d, 你剩余生命%d' % (小怪物_newlife, 生命))
                    if 小怪物_newlife <= 0:
                        苹果数量 += 1
                        经验 += 20
                        e.msgbox(
                            '恭喜你胜利了,获得一个苹果, 获得20点经验,当前苹果数为%d,当前经验为%d' % (苹果数量, 经验))
                        if 经验 >= 100:
                            等级 += 1
                            e.msgbox('恭喜你升级了等级-->%d' % 等级)
                            经验 -= 100
                            break
                    else:
                        continue
                elif 小怪物_choices == '使用苹果':
                    if 苹果数量 > 0:
                        生命 += 10
                        苹果数量 -= 1
                        return 苹果数量
                        return 生命
                        e.msgbox('现在生命为%d' % 生命)
                        continue
                    else:
                        e.msgbox('你的苹果数量不足,请去打怪后获得')
                        continue

                else:
                    小怪物_choices == '逃跑'
                    e.msgbox('你已逃出来')
                    fight()
        fight_小河边()

    else:
        e.msgbox('你已经喵了,重新开始')
        生命 = 100
        主界面()


def 巨齿龙_gongji():
    global 生命
    global 经验
    global 等级
    global 苹果数量
    damge = ATK - 巨齿龙_def
    巨齿龙_newlife = 巨齿龙_life - damge
    生命 = 生命 + (DEF - 巨齿龙_atk)
    if 生命 > 0:
        if 巨齿龙_newlife <= 0:
            苹果数量 += 1
            经验 += 80
            e.msgbox('恭喜你胜利了,获得一个苹果, 获得80点经验,当前苹果数为%d,当前经验为%d' % (苹果数量, 经验))
            if 经验 >= 100:
                等级 += 1
                e.msgbox('恭喜你升级了等级-->%d' % 等级)
                经验 -= 100
            fight_小森林()
        elif 生命 < 0:
            e.msgbox('你已经喵了,重新开始')
            生命 = 100
            主界面()
        else:
            while 巨齿龙_newlife > 0:
                e.msgbox('巨齿龙剩余血量%d, 你剩余生命%d' % (巨齿龙_newlife, 生命))
                巨齿龙_choices = e.buttonbox(
                    '巨齿龙还剩余%d的血' % 巨齿龙_newlife, title, choices=(继续攻击, 使用苹果, 逃跑))
                if 巨齿龙_choices == '继续攻击':
                    巨齿龙_newlife -= damge
                    e.msgbox('巨齿龙剩余血量%d, 你剩余生命%d' % (巨齿龙_newlife, 生命))
                    if 巨齿龙_newlife <= 0:
                        苹果数量 += 1
                        经验 += 80
                        e.msgbox(
                            '恭喜你胜利了,获得一个苹果, 获得80点经验,当前苹果数为%d,当前经验为%d' % (苹果数量, 经验))
                        if 经验 >= 100:
                            等级 += 1
                            e.msgbox('恭喜你升级了等级-->%d' % 等级)
                            经验 -= 100
                            break
                    else:
                        continue
                elif 巨齿龙_choices == '使用苹果':
                    生命 += 10
                    e.msgbox('现在生命为%d' % 生命)
                    continue
                else:
                    巨齿龙_choices == '逃跑'
                    e.msgbox('你已逃出来')
                    fight()
        fight_小森林()

    else:
        e.msgbox('你已经喵了,重新开始')
        生命 = 100
        主界面()


def fight_小森林():
    if 等级 <= 10:
        e.msgbox('你等级太低啦,建议到10级再来冒险吧')
        fight()
    else:
        开始打怪10()


def fight_雪山():
    if 等级 <= 40:
        e.msgbox('那里太危险了,建议40级以后再来吧')
        fight()
    else:
        e.msgbox('程序员还在开发中')
        主界面()


def xiaodao():
    global 木材
    global 石头
    global ATK
    e.msgbox('制作材料需要5个木材 和 5个石头,您现在拥有%d 个木材 和 %d个石头' % (木材, 石头), title,)
    g = e.buttonbox('是否需要购买小刀 增加2点攻击力', title, choices=(买, 不买))
    if g == '买':
        if 木材 >= 5 and 石头 >= 5:
            木材 -= 5
            石头 -= 5
            ATK += 2
            e.msgbox('恭喜你购买成功,攻击力加2.目前攻击力为 %d, 剩余木材为%d, 剩余石头为%d' %
                     (ATK, 木材, 石头), title)
            sword()
        else:
            e.msgbox('你拥有的材料不足,请去挖矿。 剩余木材为%d, 剩余石头为%d' % (木材, 石头), title)
            sword()
    if g == '不买':
        e.msgbox('我靠,客官你逗我呢。 不买赶紧走~~~~', title)
        sword()


def dakandao():
    global 木材
    global 石头
    global ATK
    e.msgbox('制作材料需要10个木材 和 10个石头,您现在拥有%d 个木材 和 %d个石头' % (木材, 石头))
    g = e.buttonbox('是否需要购买大喵 增加5点攻击力', title, choices=(买, 不买))
    if g == '买':
        if 木材 >= 10 and 石头 >= 10:
            木材 -= 10
            石头 -= 10
            ATK += 5
            e.msgbox('恭喜你购买成功,攻击力加5.目前攻击力为 %d, 剩余木材为%d, 剩余石头为%d' %
                     (ATK, 木材, 石头), title)
            sword()
        else:
            e.msgbox('你拥有的材料不足,请去挖矿。 剩余木材为%d, 剩余石头为%d' % (木材, 石头), title)
            sword()
    if g == '不买':
        e.msgbox('我靠,客官你逗我呢。 不买赶紧走~~~~', title)
        sword()


def changjian():
    global 木材
    global 石头
    global ATK
    e.msgbox('制作材料需要20个木材 和 20个石头,您现在拥有%d 个木材 和 %d个石头' % (木材, 石头))
    g = e.buttonbox('是否需要购买长剑 增加15点攻击力', title, choices=(买, 不买))
    if g == '买':
        if 木材 >= 20 and 石头 >= 20:
            木材 -= 20
            石头 -= 20
            ATK += 15
            e.msgbox('恭喜你购买成功,攻击力加15.目前攻击力为 %d, 剩余木材为%d, 剩余石头为%d' %
                     (ATK, 木材, 石头), title)
            sword()
        else:
            e.msgbox('你拥有的材料不足,请去挖矿。 剩余木材为%d, 剩余石头为%d' % (木材, 石头), title)
            sword()
    if g == '不买':
        e.msgbox('我靠,客官你逗我呢。 不买赶紧走~~~~', title)
        sword()


def jujian():
    global 木材
    global 石头
    global ATK
    e.msgbox('制作材料需要40个木材 和 40个石头,您现在拥有%d 个木材 和 %d个石头' % (木材, 石头))
    g = e.buttonbox('是否需要购买巨剑 增加35点攻击力', title, choices=(买, 不买))
    if g == '买':
        if 木材 >= 40 and 石头 >= 40:
            木材 -= 40
            石头 -= 40
            ATK += 35
            e.msgbox('恭喜你购买成功,攻击力加35.目前攻击力为 %d, 剩余木材为%d, 剩余石头为%d' %
                     (ATK, 木材, 石头), title)
            sword()
        else:
            e.msgbox('你拥有的材料不足,请去挖矿。 剩余木材为%d, 剩余石头为%d' % (木材, 石头), title)
            sword()
    if g == '不买':
        e.msgbox('我靠,客官你逗我呢。 不买赶紧走~~~~', title)
        sword()


def tulongdao():
    global 木材
    global 石头
    global ATK
    e.msgbox('制作材料需要60个木材 和 60个石头,您现在拥有%d 个木材 和 %d个石头' % (木材, 石头))
    g = e.buttonbox('是否需要购买屠龙刀 增加135点攻击力', title, choices=(买, 不买))
    if g == '买':
        if 木材 >= 60 and 石头 >= 60:
            木材 -= 60
            石头 -= 60
            ATK += 135
            e.msgbox('恭喜你购买成功,攻击力加135.目前攻击力为 %d, 剩余木材为%d, 剩余石头为%d' %
                     (ATK, 木材, 石头), title)
            sword()
        else:
            e.msgbox('你拥有的材料不足,请去挖矿。 剩余木材为%d, 剩余石头为%d' % (木材, 石头), title)
            sword()
    if g == '不买':
        e.msgbox('我靠,客官你逗我呢。 不买赶紧走~~~~', title)
        sword()


def mucai():
    global 木材
    while True:
        g = e.buttonbox('欢迎来到伐木世界', title, choices=(砍伐大树, 返回))
        if g == '砍伐大树':
            木材 += 2
            e.msgbox('恭喜获得2个木材 目前拥有 %d 个木材' % 木材, title)
            continue
        else:
            e.msgbox('欢迎下次光临,需要的时候再来吧', title)
            主界面()


def shitou():
    global 石头
    while True:
        g = e.buttonbox('欢迎来到石头世界', title, choices=(采石, 返回))
        if g == '采石':
            石头 += 2
            e.msgbox('恭喜获得2个石头 目前拥有 %d 个石头' % 石头, title)
            continue
        else:
            e.msgbox('欢迎下次光临,需要的时候再来吧', title)
            主界面()


def sword():
    g = e.buttonbox('请选择你要购买的武器,可以增加攻击力哦^_^', title,
                    choices=(小刀, 大喵, 长剑, 巨剑, 屠龙刀, 返回))
    if g == '小刀':
        xiaodao()
    if g == '大喵':
        dakandao()
    if g == '长剑':
        changjian()
    if g == '巨剑':
        jujian()
    if g == '屠龙刀':
        tulongdao()
    if g == '返回':
        主界面()


def wakuang():
    global 木材
    global 石头
    e.msgbox('欢迎来到挖矿世界,在这里你可以获得木材 和石头', title)
    g = e.buttonbox('请选择你要采集的资源', title, choices=('木材', '石头'))
    if g == '木材':
        mucai()
    if g == '石头':
        shitou()


def clothes():
    e.msgbox('哈哈,程序员俺还在开发中,下次再来玩 :-)', title)
    主界面()


def maoxian():
    e.msgbox('哈哈,程序员俺还在开发中,下次再来玩 :-)', title)
    主界面()


def 主界面():
    global 生命
    global 经验
    global 等级
    msg = '等级 %d , 经验【%d】,生命 %d' % (等级, 经验, 生命)
    g = e.buttonbox(msg, title, choices=(背包, 打怪, 武器店, 防具店, 冒险, 挖矿, 退出))
    if g == '打怪':
        fight()
    elif g == '武器店':
        sword()
    elif g == '防具店':
        clothes()
    elif g == '冒险':
        maoxian()
    elif g == '挖矿':
        wakuang()
    elif g == '背包':
        beibao()
    else:
        e.msgbox('游戏结束,谢谢', title)
        exit()


主界面()

#### 希望可以获得改进代码的指点。谢谢

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
沉著的飞叶龙uZWJ沉著的飞叶龙uZWJ

emotion_编程猫_点赞

期待下一版

点赞0


评论