我用python做了一个文字游戏
(感谢“歪瑞古德”给我的灵感)
(他曾经做过这么个游戏,但我不是在抄袭,我又增加了一些功能,虽然有些功能还需完善)
下面代码附上,不谢~
from random import *
from time import *
def A(x):
if x<0:
return 0
return x
def EX(y,e):
if y>e:
return e
return y
atk=10
defe=0
hp=100
exc=100
coin=100
friend=0
print("=====朝阳世界=====")
name=str(input("你叫什么名字?\n"))
while True:
a=str(input("要干什么:1.移动 2.查看状态 3.商店 4.训练场 5.会话 6.存档 7.读档 0.退出游戏\n"))
if a=='1':
sleep(1)
b=str(input("要去哪里:1.酒吧 2.旅馆 3.森林一层 4.森林二层 5.森林三层 6.海洋一层 7.海洋二层 0.回去\n"))
if b=='3':
sleep(1)
HP=100
ATK=10
DEFE=5
while hp>0 and HP>0:
c=str(input("你要干什么:1.攻击 2.查看状态 3.逃跑\n"))
if c=='1':
sleep(1)
attk=A(A(atk-DEFE)+randint(-3,3))
ATTK=A(A(ATK-defe)+randint(-3,3))
HP-=attk
hp-=ATTK
print(name, "攻击!怪物血量减少", attk)
print("怪物攻击!你的血量减少", ATTK)
elif c=='2':
print("你的攻击力:",atk,"你的防御力:",defe,"你的当前血量:",hp)
elif c=='3':
rand=randint(1,10)
if rand<6:
sleep(1)
print("逃跑成功!")
break
else:
sleep(1)
print("逃跑失败!你被怪物打成了筛子……")
hp=0
else:
print("不是合法操作!")
if hp<=0 and HP>0:
sleep(1)
print("你已死亡,掉落200金币,需要一段时间复活……")
coin=A(coin-200)
sleep(30)
hp=exc
elif hp>0 and HP<=0:
sleep(1)
print("恭喜,你打败了怪物,获得100金币!血量上限+15!")
coin+=100
exc+=15
if randint(1, 7) == 1:
if randint(1, 2) == 1:
print("在敌人尸骸中发现布衣!")
defe += 5
else:
print("在敌人尸骸中发现菜刀!")
atk += 10
elif hp <= 0 and HP <= 0:
print("你与怪物同归于尽,需要一段时间复活……")
sleep(30)
hp=exc
elif b == '4':
sleep(1)
HP = 400
ATK = 40
DEFE = 15
while hp > 0 and HP > 0:
c = str(input("你要干什么:1.攻击 2.查看状态 3.逃跑\n"))
if c == '1':
sleep(1)
attk=A(A(atk-DEFE)+randint(-15,15))
ATTK=A(A(ATK-defe)+randint(-15,15))
HP -= attk
hp -= ATTK
print(name, "攻击!怪物血量减少", attk)
print("怪物攻击!你的血量减少", ATTK)
elif c == '2':
print("你的攻击力:", atk, "你的防御力:", defe, "你的当前血量:", hp)
elif c == '3':
rand = randint(1, 10)
if rand < 4:
sleep(1)
print("逃跑成功!")
break
else:
sleep(1)
print("逃跑失败!你被怪物打成了筛子")
hp = 0
else:
print("不是合法操作!")
if hp <= 0 and HP > 0:
sleep(1)
print("你已死亡,掉落400金币,需要30秒复活……")
coin = A(coin-400)
sleep(30)
hp=exc
elif hp > 0 and HP <= 0:
sleep(1)
print("恭喜,你打败了怪物,获得200金币!血量上限+30!")
coin+=200
exc+=30
if randint(1, 7) == 1:
if randint(1, 2) == 1:
print("在敌人尸骸中发现软甲!")
defe += 10
else:
print("在敌人尸骸中发现长剑!")
atk += 20
elif hp <= 0 and HP <= 0:
print("你与怪物同归于尽,需要30秒复活……")
sleep(30)
hp=exc
elif b == '5':
sleep(1)
HP = 1000
ATK = 100
DEFE = 40
while hp > 0 and HP > 0:
c = str(input("你要干什么:1.攻击 2.查看状态 3.逃跑\n"))
if c == '1':
sleep(1)
attk=A(A(atk-DEFE)+randint(-40,40))
ATTK=A(A(ATK-defe)+randint(-40,40))
HP -= attk
hp -= ATTK
print(name, "攻击!怪物血量减少", attk)
print("怪物攻击!你的血量减少", ATTK)
elif c == '2':
print("你的攻击力:", atk, "你的防御力:", defe, "你的当前血量:", hp)
elif c == '3':
rand = randint(1, 10)
if rand < 4:
sleep(1)
print("逃跑成功!")
break
else:
sleep(1)
print("逃跑失败!你被怪物打成了筛子")
hp = 0
else:
print("不是合法操作!")
if hp <= 0 and HP > 0:
sleep(1)
print("你已死亡,掉落1000金币,需要30秒复活……")
coin = A(coin-1000)
sleep(30)
hp=exc
elif hp > 0 and HP <= 0:
sleep(1)
print("恭喜,你打败了怪物,获得400金币!血量上限+50!")
coin+=400
exc+=50
if randint(1,7)==1:
if randint(1,2)==1:
print("在敌人尸骸中发现铁甲!")
defe+=25
else:
print("在敌人尸骸中发现龙泉宝剑!")
atk+=50
elif hp<=0 and HP<=0:
print("你与怪物同归于尽,需要30秒复活……")
sleep(30)
hp=exc
elif b=='1':
sleep(1)
print("你在酒吧待了一会……")
sleep(8)
hp=EX(hp+6,exc)
print("你退出了酒吧,状态恢复了一点")
elif b=='2':
sleep(1)
print("你在旅馆休息了一会……")
sleep(18)
hp=EX(hp+15,exc)
print("你退出了旅馆,状态恢复了一点")
elif b=='0':
print("你回去了")
elif b == '6':
sleep(1)
HP = 3000
ATK = 200
DEFE = 100
while hp > 0 and HP > 0:
c = str(input("你要干什么:1.攻击 2.查看状态 3.逃跑 4.求助朋友\n"))
if c == '1':
sleep(1)
attk = A(A(atk-DEFE)+randint(-100, 100))
ATTK = A(A(ATK-defe)+randint(-100, 100))
HP -= attk
hp -= ATTK
print(name, "攻击!海怪血量减少", attk)
print("海怪攻击!你的血量减少", ATTK)
elif c == '2':
print("你的攻击力:", atk, "你的防御力:", defe, "你的当前血量:", hp)
elif c == '3':
rand = randint(1, 10)
if rand < 3:
sleep(1)
print("逃跑成功!")
break
else:
sleep(1)
print("逃跑失败!你被海怪打成了筛子……")
hp = 0
elif c=='4':
ch=randint(1,20+friend)
if ch<=friend:
sleep(1)
print("朋友来帮你了一把!海怪血量-200!")
HP-=200
hp-=A(ATTK-50)
else:
print("朋友很忙,没空帮你……")
hp-=ATTK
else:
print("不是合法操作!")
if hp <= 0 and HP > 0:
sleep(1)
print("你已死亡,掉落1800金币,需要一段时间复活……")
coin = A(coin-1800)
sleep(30)
hp=exc
elif hp > 0 and HP <= 0:
sleep(1)
print("恭喜,你打败了怪物,获得750金币!血量上限+80!")
coin += 750
exc += 80
if randint(1, 15) == 1:
if randint(1, 2) == 1:
print("在敌人尸骸中发现闪耀钢甲!")
defe += 50
else:
print("在敌人尸骸中发现光剑!")
atk += 70
elif hp <= 0 and HP <= 0:
print("你与怪物同归于尽,需要一段时间复活……")
sleep(30)
hp=exc
elif b == '7':
sleep(1)
HP = 7000
ATK = 500
DEFE = 300
while hp > 0 and HP > 0:
c = str(input("你要干什么:1.攻击 2.查看状态 3.逃跑 4.求助朋友\n"))
if c == '1':
sleep(1)
attk = A(A(atk-DEFE)+randint(-240, 240))
ATTK = A(A(ATK-defe)+randint(-240, 240))
HP -= attk
hp -= ATTK
print(name, "攻击!海怪血量减少", attk)
print("海怪攻击!你的血量减少", ATTK)
elif c == '2':
print("你的攻击力:", atk, "你的防御力:", defe, "你的当前血量:", hp)
elif c == '3':
rand = randint(1, 10)
if rand < 2:
sleep(1)
print("逃跑成功!")
break
else:
sleep(1)
print("逃跑失败!你被海怪打成了筛子……")
hp = 0
elif c == '4':
ch = randint(1, 30+friend)
if ch <= friend:
sleep(1)
print("朋友来帮你了一把!海怪血量-300!")
HP -= 300
hp -= A(ATTK-80)
else:
print("朋友很忙,没空帮你……")
hp -= ATTK
else:
print("不是合法操作!")
if hp <= 0 and HP > 0:
sleep(1)
print("你已死亡,掉落3200金币,需要一段时间复活……")
coin = A(coin-3200)
sleep(30)
hp=exc
elif hp > 0 and HP <= 0:
sleep(1)
print("恭喜,你打败了怪物,获得1500金币!血量上限+150!")
coin += 1500
exc += 150
if randint(1, 15) == 1:
if randint(1, 2) == 1:
print("在敌人尸骸中发现闪耀钢甲!")
defe += 50
else:
print("在敌人尸骸中发现光剑!")
atk += 70
elif hp <= 0 and HP <= 0:
print("你与怪物同归于尽,需要一段时间复活……")
sleep(30)
hp=exc
else:
print("不是合法操作!")
elif a=='2':
sleep(1)
print("你的攻击力:",atk,"你的防御力:",defe,"你的血量:",hp,"你的金币数:",coin,"你有",friend,"个朋友")
elif a=='3':
sleep(1)
print("年轻人呀~")
sleep(1)
print("你要买什么装备呢?")
sleep(1)
print("1.菜刀(攻击力+10)(¥100)\n2.长剑(攻击力+20)(¥200)\n3.龙泉宝剑(攻击力+50)(¥450)(九折!)\n4.光剑(攻击力+70)(¥630)(九折!)\n5.等离子枪(攻击力+100)(¥800)(八折!)\n666.反物质炮(攻击力+300)(¥2250)(七五折!)")
buy = str(input("6.布衣(防御力+5)(¥100)\n7.软甲(防御力+10)(¥200)\n8.铁甲(防御力+25)(¥450)(九折!)\n9.闪耀钢甲(防御力+50)(¥800)(八折!)\n10.草药(血量+60)(¥200)\n0.随便看看,不买\n"))
if buy == '1':
if coin>=100:
sleep(1)
print("菜刀购买成功!攻击力+10")
coin-=100
atk+=10
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '2':
if coin >= 200:
sleep(1)
print("长剑购买成功!攻击力+20")
coin -= 200
atk += 20
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '3':
if coin >= 450:
sleep(1)
print("龙泉宝剑购买成功!攻击力+50")
coin -= 450
atk += 50
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '4':
if coin >= 630:
sleep(1)
print("光剑购买成功!愿原力与你同在!攻击力+70")
coin -= 630
atk += 70
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '5':
if coin >= 800:
sleep(1)
print("等离子枪购买成功!攻击力+100")
coin -= 800
atk += 100
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '6':
if coin >= 100:
sleep(1)
print("布衣购买成功!防御力+5")
coin -= 100
defe += 5
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '7':
if coin >= 200:
sleep(1)
print("软甲购买成功!防御力+10")
coin -= 200
defe += 10
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '8':
if coin >= 450:
sleep(1)
print("铁甲购买成功!防御力+25")
coin -= 450
defe += 25
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '9':
if coin >= 800:
sleep(1)
print("铁甲购买成功!防御力+25")
coin -= 800
defe += 50
else:
sleep(1)
print("金币不够,购买失败!")
elif buy == '666':
if coin >= 2250:
sleep(1)
print("反物质炮购买成功!攻击力+300")
coin -= 2250
atk += 300
else:
sleep(1)
print("金币不够,购买失败!")
elif buy=='10':
if coin>=200:
print("草药购买成功!血量+200")
coin-=200
hp=EX(hp+60,exc)
else:
print("金币不够,购买失败!")
elif buy == '0':
sleep(1)
print("装备不错,下次再来吧")
else:
print("不是合法操作!")
elif a=='4':
sleep(1)
print("欢迎来到训练场!\n温馨提示:小心亿点,这里很可能玩出命来")
train=str(input("请问如何训练?\n1.自由训练 2.对打(简单) 3.对打(中等) 4.对打(困难)"))
if train=='1':
prize=randint(1,3)
sleep(1)
print("开始训练……")
sleep(4)
print("教练看到了,说:“练得不错,这",prize,"个金币归你了!”")
coin+=prize
elif train=='2':
sleep(1)
print("对打开始!")
aatk=randint(5,15)
ddefe=randint(1,5)
hhp=randint(50,75)
while hp>0 and hhp>0:
sleep(1)
attk = A(A(atk-ddefe)+randint(-3, 3))
aattk = A(A(aatk-defe)+randint(-3, 3))
hhp-=attk
hp-=aattk
print(name,"攻击!对手血量-",attk)
print("对手攻击!你的血量-", aattk)
if hp>0 and hhp<=0:
prize=randint(3,8)
sleep(1)
print("你赢了!教练奖励了你",prize,"个金币!")
coin+=prize
elif hp<=0 and hhp>0:
sleep(1)
print("很遗憾,你被对手打成了筛子!需要一段时间复活,外加鼓励奖1个金币!")
coin+=1
sleep(30)
hp=exc
elif hp<=0 and hhp<=0:
sleep(1)
print("你与对手同归于尽……需要一段时间复活……两个金币,拿去吧!")
coin+=2
sleep(30)
hp=exc
elif train == '3':
sleep(1)
print("对打开始!")
aatk = randint(20, 35)
ddefe = randint(10, 15)
hhp = randint(150, 200)
while hp > 0 and hhp > 0:
sleep(1)
attk = A(A(atk-ddefe)+randint(-6, 6))
aattk = A(A(aatk-defe)+randint(-6, 6))
hhp -= attk
hp -= aattk
print(name, "攻击!对手血量-", attk)
print("对手攻击!你的血量-", aattk)
if hp > 0 and hhp <= 0:
prize = randint(6,14)
sleep(1)
print("你赢了!教练奖励了你", prize, "个金币!")
coin += prize
elif hp <= 0 and hhp > 0:
sleep(1)
print("很遗憾,你被对手打成了筛子!需要一段时间复活,外加鼓励奖1个金币!")
coin += 1
sleep(30)
hp=exc
elif hp <= 0 and hhp <= 0:
sleep(1)
print("你与对手同归于尽……需要一段时间复活……两个金币,拿去吧!")
coin += 2
sleep(30)
hp=exc
elif train == '4':
sleep(1)
print("对打开始!")
aatk = randint(30, 40)
ddefe = randint(20, 30)
hhp = randint(100, 150)
while hp > 0 and hhp > 0:
sleep(1)
attk = A(A(atk-ddefe)+randint(-15,15))
aattk = A(A(aatk-defe)+randint(-15, 15))
hhp -= attk
hp -= aattk
print(name, "攻击!对手血量-", attk)
print("对手攻击!你的血量-", aattk)
if hp > 0 and hhp <= 0:
prize = randint(15,24)
sleep(1)
print("你赢了!教练奖励了你", prize, "个金币!")
coin += prize
elif hp <= 0 and hhp > 0:
sleep(1)
print("很遗憾,你被对手打成了筛子!需要一段时间复活,外加鼓励奖1个金币!")
coin += 1
sleep(30)
hp=exc
elif hp <= 0 and hhp <= 0:
sleep(1)
print("你与对手同归于尽……需要一段时间复活……两个金币,拿去吧!")
coin += 2
sleep(30)
hp=exc
else:
print("不是合法操作!")
elif a=='5':
m=1
if m==1:
sleep(1)
t=str(input("你喜欢吃些什么?\n1.海鲜 2.川菜 3.西餐 4.其他"))
ll=randint(1,4)
if t=='1':
if ll==1:
sleep(1)
print("太好了,我也喜欢!咱们真是缘分!咱们做朋友吧!")
friend+=1
else:
sleep(1)
print("呃,这么恶心的东西你也喜欢吃……告辞~")
elif t=='2':
if ll==2:
sleep(1)
print("嗯,我也挺喜欢,川菜的味道针不戳~咱们做朋友吧!")
friend+=1
else:
sleep(1)
print("啊……这么辣,我可不喜欢吃辣……告辞!")
elif t=='3':
if ll==3:
sleep(1)
print("嗯,很新颖,带我吃吧!")
friend+=1
else:
print("一点都不健康!千万别叫我吃这些东西!")
elif t=='4':
if ll==4:
print("不错不错!挺有新意!")
friend+=1
else:
sleep(1)
print("我不跟怪异的人交朋友!")
else:
sleep(1)
print("不是合法操作!")
elif a=='6' or a=='7':
sleep(1)
print("暂未开放此功能……")
elif a==0:
print("你退出了游戏……")
break
else:
print("不是合法操作!")
v=input("按回车键退出……")
希望大家对这个作品提出宝贵的意见,谢谢!