学习python 不到一个月 自编一个文字游戏,勇者大冒险
import easygui as eimport 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()
主界面()
#### 希望可以获得改进代码的指点。谢谢 顶一下 厉害 咋显示没有easygui模块{:10_261:} 忧郁的大叔 发表于 2018-2-7 22:23
咋显示没有easygui模块
import easygui as e
哈哈,现在看看这程序写的好low啊。 呵呵 运行不了
Traceback (most recent call last):
File "/Users/yufan/Documents/python编程/damaoxian.py", line 1, in <module>
import easygui as e
ModuleNotFoundError: No module named 'easygui' 黄金猫 发表于 2018-3-7 00:26
运行不了
你们没安装easygui模块而已,楼主的代码没问题 谢谢楼主分享,自己也想做个游戏,学习中。。。
页:
[1]