Python游戏代码,拿走不谢
  • 板块灌水区
  • 楼主Fishmaster
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/8/7 10:24
  • 上次更新2023/11/4 11:45:09
查看原帖
Python游戏代码,拿走不谢
531258
Fishmaster楼主2021/8/7 10:24

我用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("按回车键退出……")

希望大家对这个作品提出宝贵的意见,谢谢!

2021/8/7 10:24
加载中...