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