Python宠物养成系统1.0

class Pet():
    def __init__(self, name, weight, height, satiety, mood, numeggs):
        self.name = name
        self.weight = weight
        self.height = height
        self.satiety = satiety
        self.mood = mood
        self.numeggs = numeggs
        self.show()

    def eat(self):
        self.satiety += 1
        print('你喂了一袋零食给'+str(self.name))
        print()
        print(str(self.name)+"开吃啦biajibiaji...")
        print()
        print(str(self.name)+'的体重增加了1kg')
        print()
        print(str(self.name)+'的身高增加了1cm')
        print()
        print(str(self.name)+'的心情增加了1')
        print()
        self.weight += 1
        self.height += 1
        self.mood += 1
        self.show()
        if self.satiety == 5:
            self.egg()
            self.satiety = 0

    def bark(self):
        print(str(self.name)+"要开始叫了...")
        print()
        print(str(self.name)+'的心情增加了1')
        print()
        if self.satiety >= 1:
            print(str(self.name)+'的饱腹度减1')
            print()
            self.satiety -= 1
        self.mood += 1
        self.show()

    def play(self,ans):
        self.ans = ans
        print(str(self.name)+'要开始玩啦!')
        print()
        if ans == '糖豆游戏':



            
            import random

            print("-- -- -- -- 糖豆游戏 -- -- -- --")
            print("游戏规则:\n桌上有20颗糖果。每次只准拿其中的1颗、2颗,最多3颗。\n"+str(self.name)+"和你轮流拿,谁拿到了最后一颗,谁就获得了胜利!")
            order = input("请选择谁先开始拿:(输入你或者"+str(self.name)+',输入错误/游戏结束后 将自动退出):')
            count = 20
            if order == "我":
                while True:
                    userNum = int(input("请输入你拿的数量:"))
                    count = count - userNum
                    if count <= 0:
                        print("你拿到了最后一颗哦,你获胜了")
                        break
                    computerNum = random.randint(1, 3)
                    count = count - computerNum
                    if count == 0:
                        print(str(self.name)+"拿到了最后一颗哦,"+str(self.name)+"获胜")
                        break
                    print("你拿了"+str(userNum)+"颗糖豆,"+str(self.name)+"拿了{}颗,现在还剩下{}颗".format(computerNum, count))
                    
            elif order == str(self.name):
                while True:
                    computerNum = random.randint(1, 3)
                    count = count - computerNum
                    if count == 0:
                        print(str(self.name)+"拿到了最后一颗哦,"+str(self.name)+"获胜")
                        break
                    else:
                        print(str(self.name)+"拿了{}颗,现在还剩下{}颗".format(computerNum, count))

                    userNum = int(input("请输入你拿的数量:"))
                    count = count - userNum
                    if count <= 0:
                        print("你拿到了最后一颗哦,你获胜了")
                        break
                    else:
                        print("你拿了{}颗,现在还剩下{}颗".format(userNum, count))
            else:
                print('已成功退出')
                print()




        elif self.ans == '林中探险':


            # 定义游戏场景和操作命令
            scenes = {
                '起点': {
                    '描述': '你来到了一个神秘的起点,四周围绕着一片茂密的森林.',
                    '命令': {'向东': '东边的路口', '向南': '南边的山洞', '向西': '西边的湖泊'}
                },
                '东边的路口': {
                    '描述': '你来到了一条崎岖的山路,路的尽头有一座古老的城堡.',
                    '命令': {'前往城堡': '城堡', '向西': '起点'}
                },
                '南边的山洞': {
                    '描述': '你来到了一个幽深的山洞,洞内传出阵阵奇怪的声音.',
                    '命令': {'探索山洞': '山洞', '向北': '起点', '向东': '神秘的洞穴'}
                },
                '西边的湖泊': {
                    '描述': '你来到了一个美丽的湖泊,湖水清澈见底,湖边有一座小木屋.',
                    '命令': {'进入小木屋': '小木屋', '向东': '起点'}
                },
                '神秘的洞穴': {
                    '描述': '你来到了一个神秘的洞穴,这里有着传说中的宝藏.',
                    '命令': {'寻找宝藏': '宝藏', '向西': '南边的山洞'}
                },
                '城堡': {
                    '描述': '你来到了一座古老的城堡,城堡里有一件神秘的宝藏.',
                    '命令': {'打开宝藏': '宝藏', '向南': '东边的路口', '向西': '起点'}
                },
                '山洞': {
                    '描述': '你来到了一个幽深的山洞,洞内藏着一份珍贵的地图.',
                    '命令': {'拿起地图': '地图上有毒,游戏结束', '向北': '起点'}
                },
                '小木屋': {
                    '描述': '你进入了一座小木屋,里面有一位神秘的老人.',
                    '命令': {'与老人交谈': '秘密', '离开小木屋': '西边的湖泊'}
                },
                '秘密': {
                    '描述': '老人告诉你,只有在特定的时间和地点,才能找到真正的宝藏.',
                    '命令': {'相信老人': '特定的地点', '不相信老人': '老人很生气,把你们赶走了,游戏结束'}
                },
                '特定的地点': {
                    '描述': '你来到了一处神秘的地点,地面上有一些奇怪的符号.',
                    '命令': {'破解符号': '宝藏', '向南': '起点'}
                },
                '宝藏': {
                    '描述': '你找到了宝藏,里面有一袋神秘的零食.',
                    '命令': {'离开洞穴': '祝贺你!!!你离开了洞穴,成功获得了零食,游戏结束', '向西': '神秘的洞穴'}
                }
            }

            # 进入起点
            current_scene = '起点'
            while True:
                # 输出当前场景描述
                if '游戏结束' in current_scene:
                    print(current_scene)
                    break
                else:
                    print(scenes[current_scene]['描述'])
                # 输出可用命令
                print('可用命令:', list(scenes[current_scene]['命令'].keys()))
                # 接收用户输入的命令
                command = input('请输入命令:')
                # 判断命令是否可用
                next_scene = scenes[current_scene]['命令'].get(command, None)
                if next_scene is None:
                    print('命令不可用,请重新输入!')
                    continue
                # 进行游戏操作
                if next_scene == '游戏结束':
                    print('游戏结束!')
                    break
                elif next_scene == '相信老人':
                    current_scene = '特定的地点'
                    continue
                elif current_scene == '特定的地点' and next_scene != '破解符号':
                    print('你需要先破解符号才能离开这里!')
                    continue
                elif current_scene == '神秘的洞穴' and next_scene != '宝藏':
                    print('你需要先找到宝藏才能离开这里!')
                    continue
                else:
                    current_scene = next_scene
            
                            
        print(str(self.name)+'的心情增加了1')
        print()
        if self.satiety >= 1:
            print(str(self.name)+'的饱腹度减1')
            print()
            self.satiety -= 1
        self.mood += 1
        self.show()

    def egg(self):
        print(str(self.name)+'的饱腹度已满5,'+str(self.name)+'下了一个蛋')
        print()
        self.numeggs += 1
        self.show()

    def walk(self,xyz):
        self.xyz = xyz
        if xyz == '银行':
            print('你们来到了银行')
            print()


            # 账户类
            class Accout():
                def __init__ (self,name,password,balance,operration):
                    self.name = name
                    self.password = password
                    self.balance = balance
                    self.operration = operration
                    print("账户创建成功")

                # 查询余额
                def check(self):
                    print("当前余额:",self.balance)
                # 存钱
                def save(self,money):
                    self.balance += money
                    self.operration = "存入" + str(money)
                # 取钱
                def withdraw(self,money):
                    if self.balance < money:
                        print("余额不足")
                    else:
                        self.balance -= money
                        self.operration = "取钱" + str(money)

                # 记录
                def record(self):
                    f = open(self.name + ".txt","a")
                    text = self.name + "," + self.password + "," + str(self.balance) + "," + self.operration + "\n"
                    f.write(text)
                    f.close()
            # 输入信息
            name = input("请输入账户名称:")
            password = input("请输入账户密码:")
            balance = int(input("请输入账户余额:"))
            # 创建账户
            user = Accout(name,password,balance,"创建账户")
            user.record()
            while True:
                print("""
            1.查询余额
            2.存钱
            3.取钱
            exit退出
            """)
                num = input()
                if num == 'exit':
                    print('已成功退出')
                    break
                elif num == "1":
                    user.check()
                elif num == "2":
                    money = int(input("请输入想存的钱数"))
                    user.save(money)
                    user.record()
                elif num == "3":
                    money = int(input("请输入想取的钱数"))
                    user.withdraw(money)
                    user.record()
                else:
                    print("请输入1,2,3")


        elif self.xyz == '茶馆':
            print('你们到茶馆去听了一会儿相声')
            print()


            import random
            # 人物名字列表
            names = ["西门庆", "吴承恩", "贾宝玉", "武松", "潘金莲", "林黛玉", "唐僧", "孙悟空", "猪八戒", "沙和尚",'罗贯中','曹雪芹','白龙马']
            # 地名列表
            places = ["黄鹤楼", "凤凰山", "西湖", "大观园", "狮子林", "灵感观", "五台山", "雷峰塔", "青城山",'黄山','泰山','华山','定军山','八宝金殿','午门']
            weapons = ['长剑','长枪','长弓','金箍棒','禅杖','锄头','铲子','戒尺']
            talks = ['拿命来','我投降','放肆','大胆','且慢']
            # 随机生成输出
            sentence = "在{}的{}, {}和{}相遇. {}的{}遭遇了{}的入侵, {}的{}遭遇了{}的入侵. {}与{}正在打架, 打得两败俱伤, 最后反倒被{}捡了个便宜. 没想到{}趁火打劫, 把{}的{}给拆了, 这使{}非常震怒, 二话不说就把{}的{}夷为平地. 在{}的比武招亲大会上, {}{}一摆, 一个力劈华山, 朝{}当头劈下, {}大喝一声:'{}!', {}一举,就朝{}的眉心点去.".format(random.choice(places), random.choice(places), random.choice(names), random.choice(names), random.choice(names),random.choice(places),random.choice(names), random.choice(names), random.choice(places), random.choice(names), random.choice(names),random.choice(names),random.choice(names),random.choice(names),random.choice(names),random.choice(places),random.choice(names),random.choice(names),random.choice(places),random.choice(names),random.choice(names),random.choice(weapons),random.choice(names),random.choice(names),random.choice(talks),random.choice(weapons),random.choice(names),)
            # 输出结果
            print(sentence)
            print()




        else:
            print('你们逛了一圈就回来了')
            print()
            print(str(self.name)+'的心情增加了1')
            print()
            if self.satiety >= 1:
                print(str(self.name)+'的饱腹度减1')
                print()
                self.satiety -= 1
            self.mood += 1
            self.show()
            
        
    def show(self):
        print("宠物的名字是:"+str(self.name)+","+str(self.name)+"的体重是:"+str(self.weight)+"kg,"+str(self.name)+"的身高是:"+str(self.height)+'cm,'+str(self.name)+'的饱腹度是:'+str(self.satiety)+','+str(self.name)+'的心情是:'+ str(self.mood)+','+'你拥有的蛋的数量是:'+str(self.numeggs))
        print()



n = input('宠物的名字:')
print()
w = int(input('宠物的体重:'))
print()
h = int(input('宠物的身高:'))
print()
s = int(input('宠物的饱腹度:'))
print()
m = int(input('宠物的心情:'))
print()
ne = int(input('你拥有的蛋的数量:'))
print()
p = Pet(n, w, h, s, m, ne)
while True:
    print('提示:有吃,叫,玩,散步四种输入方式.输入exit退出')
    print()
    ans = input()
    print()
    if ans == 'exit':
        print('再见')
        print()
        break
    elif ans == '吃':
        p.eat()
    elif ans == '叫':
        p.bark()
    elif ans == '玩':
        ans = input('你要玩什么(糖豆游戏,林中探险):')
        p.play(ans)
    elif ans == '散步':
        ans = input('你要去哪里散步(银行,茶馆):')
        p.walk(ans)
    else:
        print('输入方式不正确,请重新输入.提示:有吃,叫,玩,散步四种输入方式.输入exit退出')
        print()
        continue



有点长......

这段Python代码实现了一个简单的宠物养成系统,允许用户与一个虚拟宠物进行互动。以下是对这段代码的简介:

宠物养成系统简介

1. 宠物类 (class Pet)
  • 初始化 (__init__): 创建宠物实例时,需要提供宠物的名字、体重、身高、饱腹度、心情和拥有的蛋数量。
  • 显示信息 (show): 打印宠物的当前状态,包括名字、体重、身高、饱腹度、心情和蛋的数量。
2. 宠物行为
  •  (eat): 宠物吃食物后,饱腹度、体重、身高和心情均会增加。如果饱腹度达到5,宠物会下蛋。
  •  (bark): 宠物叫唤,可以增加心情,如果饱腹度大于等于1,则减少1。
  •  (play): 用户可以选择与宠物玩“糖豆游戏”或“林中探险”。每种游戏都有其规则和互动方式。
    • 糖豆游戏: 一个策略游戏,用户和宠物轮流拿糖豆,目标是拿到最后一颗糖豆。
    • 林中探险: 一个文本冒险游戏,用户通过选择不同的命令来探索不同的场景并寻找宝藏。
  • 散步 (walk): 用户可以带宠物去不同的地方散步,如银行或茶馆,每个地点都有其特定的互动。
3. 银行账户类 (class Accout)
  • 在宠物散步到银行时,用户可以创建一个银行账户,进行余额查询、存款和取款操作,并记录交易。
4. 茶馆互动
  • 当宠物散步到茶馆时,系统会随机生成一段包含古典小说人物和地名的趣味句子。
5. 主循环
  • 程序运行时,用户可以通过输入不同的命令与宠物互动,如“吃”、“叫”、“玩”和“散步”。输入“exit”可退出程序。

总结

这个宠物养成系统提供了一个互动性强的虚拟环境,用户可以通过各种活动来培养和照顾宠物,同时体验不同的小游戏和情景互动。代码结构清晰,功能丰富,适合作为教学示例或进一步开发的基础。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值