import random
#创造父类敌方小兵
class Monster:
mname = ''
def __init__(self):
self.mname = "monster"
#创造敌方小兵对象1
class Monster1(Monster):
m_live = 0
def __init__(self, n, lu1):
super().__init__()
self.m_live = lu1
match n:
case 1:
self.m_name = "容嬷嬷"
case 2:
self.m_name = "一只耳"
case 3:
self.m_name = "黑熊精"
case 4:
self.m_name = "僵尸博士"
case 5:
self.m_name = "奔波霸儿"
class Monster2(Monster):
m_live = 0
def __init__(self, n, lu2):
super().__init__()
self.m_live = lu2
match n:
case 1:
self.m_name = "黑蝙王"
case 2:
self.m_name = "灭霸"
case 3:
self.m_name = "灰太狼"
case 4:
self.m_name = "特朗普"
case 5:
self.m_name = "霸波奔儿"
#与敌人战斗函数
def fight(m_name,m_power,m_live):
if power > m_live:
print(' ' * 100)
print(f"恭喜{name}成功斩杀 {monster.mname}")
return 1
elif power == m_live:
print(' ' * 100)
print(f"可惜了,你与{m_name}同归于尽")
return 0
else:
print(' ' * 100)
print(f"{m_name}:垃圾,就这给我提鞋都不配")
return -1
#菜单
def menu():
while True:
# 显示用户的选项
print(' ' * 100)
print('-' * 100)
print('-' * 100)
print('请选择要做的操作:')
print('\t1.查询角色')
print('\t2.创建角色')
print('\t3.删除角色')
print('\t4.开始对局')
print('\t5.退出游戏')
ch = int(input())
match ch:
case 1:
inquiry()
case 2:
addCharacter()
case 3:
drop(Character,'角色表','角色')
case 4:
if len(Character)!=0:
break
else:
print("你还未创键角色,请先创建角色!")
case 5:
exit()
#查找角色
def inquiry():
if len(Character) != 0:
print("请输入要查找角色的序号\n"
"或者输入0--展示所有角色")
n = int(input())
if n==0:
for item in Character:
print(item)
else:
if n<=len(Character):
print(Character[n-1])
else:
print("还未创建角色,快去创建角色吧")
#创建角色
def addCharacter():
while True:
print("请完善身份信息:")
while True:
print("请选择你的职业,1.厉不厉害你坤哥 2.马可逼罗 3.蜘蛛侠 4.18岁较小萝莉 5.马保国老师")
print('-' * 100)
try:
js = int(input("\t选择职业:"))
match js:
case 1:
print("\t辉煌迎来虚伪的看客,黄昏见证真正的信徒!哎呦,不错呦,小黑子才是真爱粉")
case 2:
print("狗都不玩王者荣耀")
print("你的手机被妈妈收走了,游戏失败")
print('-' * 100)
break
case 3:
print("\t没能救下玛丽·简,这次我代豪成阳一定要救下美...大魔头")
case 4:
print("呸,不要脸,你下贱,你还选上小萝莉了")
print(f"性格变态,{name}被游戏管理员踢出游戏,游戏失败")
print(' ' * 100)
break
case 5:
print("\t诶,朋友们好啊,我是混元形意太极门掌门人——马保国·代豪成阳,我劝!这位年轻人好自为之,"
"好好反思,以后不要再犯这样的聪明,小聪明,啊,呃,武林要以和为贵,要讲武德,不要搞窝里斗")
case _:
print("数字都输不好,你不配玩游戏")
print("游戏失败")
break
except ValueError:
print(' '*100)
print("----输入错误")
break
sno = len(Character)+1
career = Career[js-1]
sex = input("\t请输入性别:")
age = input("\t请输入年龄:")
print("\t请选择门派:1.长沙富婆俱乐部 2.六位帝皇丸 3.中国先疯大队 4.姻缘阁")
try:
school = School[int(input("\t请输入门派:"))-1]
except IndexError as e:
print("输入错误,角色创建失败!",e)
break
dict1 = {'ID':sno,'职业':career,'性别':sex,'年龄':age,'门派':school}
Character.append(dict1)
print("角色创建成功!职业选择完毕,初始攻击力为 10 血量为20")
break
try:
print('-'*100)
if input("是否继续创建角色:\n"
"1:继续创建角色 0:否,下一步\n"
"输入:")!='1':
break
except ValueError as e:
print("输入错误",e)
#删除表元素
def drop(list_1,l_name,m):
if len(list_1) != 0:
print("请输入要删除角色的序号,或者输入0,清除所有角色")
try:
num = int(input())
if num == 0:
list_1.clear()
else:
del (list_1[num - 1])
print("删除成功")
except IndexError as e:
print("超出列表范围")
else:
print(f"{l_name}还未添加任何{m},快去添加新{m}吧")
#打开商店
def store():
while True:
print(' ' * 100)
print('-' * 100)
print('-' * 100)
global money,power
print(f"欢迎光临装备商店\n各种装备大促销,童叟无欺\n"
f"带上你的30块钱亲爱的,不买东西你是真穷到家了\n"
f"选择\n1、购买装备\n2、留言版\n3、我的装备\n4、退出商店")
k = input("请选择:")
match k:
case "1":
goods()
print('-' * 100)
if input("是否支付:1,支付 0,算了,再考虑考虑") == '1':
money, power = buy()
else:
print("支付失败")
case "2":
boards()
case "3":
buy()
case "4":
break
case _ :
print("输入错误,本店不招待数学不好的人")
break
#选择商品
def goods():
for m, j in enumerate(store_list):
print("序号: %d 装备名:%s 价格:%d元 增加攻击力:%d 元\n"
" 效果:%s" % (m + 1, j[0].center(8,' '), j[1], j[2], j[3]))
while True:
try:
s = int(input("请输入商品的序号,0则退出选择,前往购物车"))
if s == 0:
break
else:
#验证商品是否已购买
if store_list[s-1] in goods_list:
print("你已拥有该装备,请重新选择")
elif store_list[s-1] in select_car:
print("购物车已添加该商品,无须再次添加")
else:
select_car.append(store_list[s - 1])
print("选择成功")
except ValueError:
print("无效值")
print('您选择的装备是:')
for k in select_car:
print(k[0])
print(' '*100)
print('已加入购物车')
#支付金币
def buy():
t = 0
p = 0
print('您选择的商品:')
for h in select_car:
print(h)
t += h[1]
print('共计%d元' % t)
print("1,支付 0,退出购物车")
while int(input('选择:')):
if money >= t: # 支付金额大于需支付额
for j in select_car:
goods_list.append(i)
p += j[2]
select_car.clear()
print('已支付 %d 金币 ,余额 %d 金币' % (t, money - t))
return money-t,power+p
else:
print('钱不够!穷鬼,晦气\n')
print('-'*100)
if input('1,删除部分商品重新支付 0,清空和购物车,老子TMD不买了') == '1':
drop(select_car,'购物车','商品')
else:
select_car.clear()
return money,power
#留言板
def boards():
while True:
m = input('请您留下富贵的意见')
keywords = '不好,差,烂,不行'
if any([w in m and w for w in keywords.split(',')]):
print("你已被系统禁言")
print('-' * 100)
else:
message.append(m)
y = input('按1则可以查看所有评论\n'
'按0退出留言板')
if y == '1':
for i in message:
print(i)
#我的装备
def gear():
for i in goods_list:
print(i)
#角色信息表
Character =[]
#职业表
Career = ['厉不厉害你坤哥','马可逼罗','蜘蛛侠','18岁娇小萝莉','马保国老师']
#门派表
School = ['长沙富婆俱乐部','六位帝皇丸','中国先疯大队','姻缘阁']
#商店列表
store_list = [('无极战刃',20,20,'拥有它可以提升暴击几率'),('六味地黄丸',30,40,'全方位增强属性'),
('金箍棒',38,50,'借助其内部残留的一丝大圣之力'),
('黑丝教师的教鞭',60,70,'(男性角色):获得短暂狂爆效果,增加攻速与暴击率全方位属性提升;'
'(女性角色)佩戴则增加个人魅力点100点,获得妲己属性,用于辅助战斗'),
('电耗子的尾巴',40,66,'吞下可获得无尽战刃升级版:闪电飞廉,同时失去理智,化身为小疯子,见人就砍')]
#我的商品列表
goods_list = []
#留言板
message=[]
#购物车
select_car = []
#男主代豪成阳
name ="代豪成阳"
print(' ' * 100)
print('-' * 100)
print('-' * 100)
print(f"欢迎光临 {name} 的英雄血泪史")
print(f"{name}宣言:")
print(f"hahaha,今日我{name}就要踏上这紫禁之巅,征服大胸...奥不,是女魔头\n")
print('-' * 100)
#初始状态
live = 20 #初始血量
power = 10 #初始攻击力
money = 30 #初始金币
#菜单
menu()
count = 0
while count < 1:
i = 1
while 0< i <= 5:
print(' ' * 100)
print('-' * 100)
print(f"欢迎来到第{i}关")
print("请选择路径(1,2),,输入3进入商店提升自己,输入4战术性撤退")
lu = input("输入路径:")
#小怪随机血量
lu1 = random.randint(power -6, power + 3)
lu2 = random.randint(power -7, power + 3)
#路径选择
match lu:
case "1":
monster = Monster1(i, lu1)
n = fight(monster.m_name,power, monster.m_live)
case "2":
monster = Monster2(i, lu2)
n = fight(monster.m_name, power,monster.m_live)
case "3":
store()
case "4":
print(' ' * 100)
print(f"{name}夹杂尾巴跑路了")
menu()
break
case _:
print("数字都输不好,你不配玩游戏")
print("再给你个机会好好输")
continue
#战斗结果判断
if n > 0:
power += monster.m_live//2
money += random.randint(25,40)
print(' ' * 100)
print(f"恭喜击败{monster.m_name}")
print(f"战斗力升级为:{power}")
print(f"获得金币奖励,目前剩余金币{money}")
i += 1
continue
else:
i = 1
power = 10
continue
#最后一关
if i == 6:
print(f"恭喜{name}来到最终关卡")
print("机会只有一次,输入1,进行战斗,输入2,逃跑")
choose = int(input())
if choose == 1:
print("真男人永不退缩,fire home")
f=fight("最终boss",power, 180)
if f==1:
break
else:
continue
else:
print(f"{name}已经闻风丧胆,双腿颤抖了边逃边说,君子报仇,10年不晚")
continue
用python基础语法写 ‘ 小游戏 ‘
于 2024-11-10 18:41:11 首次发布