阅
2023-07-08
7 min read
偷税的垃圾作品(一)小游戏篇
这本来是一个作业,写的头疼,转到这里留档
#题目1:

##下面是题目1的渣代码:
import random
from time import time
class Yang:
name = '羊'
class Laohu:
name = '老虎'
class Tizhong:
def __init__(self):
self.yangtizhong = 100
self.laohutizhong = 200
def laohu(self, chide):
if self == "老虎":
if not chide == 'meat':
self.laohutizhong -= 10
else:
self.laohutizhong += 10
def yang(self, chide):
if not chide == 'grass':
self.yangtizhong -= 10
else:
self.yangtizhong += 10
def qiaomen(self, name):
if name == '羊':
print('mie~~')
else:
print('Wow!!')
fangjian = {}
for i in range(10):
shuzi = random.randint(0, 1)
if shuzi == 1:
fangjianlidedongwu = Yang.name
else:
fangjianlidedongwu = Laohu.name
fangjian[i] = fangjianlidedongwu
fangjianhao = i + 1
dic = fangjianhao,fangjianlidedongwu
shijian = time()
fangjian = {}
while time() - shijian <= 3 * 60:
xunwen = input('敲门还是喂食:')
if xunwen == '敲门':
print(f'这是第{fangjianhao}号房间,{Tizhong.qiaomen}')
elif xunwen == '喂食':
shiwu = input('请输入meat或者grass:')
if shiwu == 'meat' or "grass":
print()
##题目2:


##以下是题目2的渣代码:
from random import randint
class player: # 自定义玩家属性
def __init__(self):
self.lingshi = 1000
self.duiwu = {}
def duiwutianjia(self, gjb, ftb):
self.duiwu['弓箭兵'] = gjb
self.duiwu['斧头兵'] = ftb
def kouqian(self, shuliang):
self.lingshi -= shuliang
wo = player() # 实例化
class senling1: # 定义个森林
def __init__(self, num, yaoguai):
self.num = num
self.animal = yaoguai
senling = [] # 把怪物放进森林
for i in range(7): # 随机七个森林
if randint(0, 1): # 随机判断两选一
ani = '狼妖'
else:
ani = '鹰妖'
room = senling1(i, ani) # 定义编号和怪物顺序
senling.append(room) # 把房间放进森林里
for i in senling: # 把i定义成1
i.num += 1
print(f'这里第{i.num}森林,怪物是{i.animal}')
class gongjianbing: # 定义弓箭手属性
jiage = 100
shengming = 100
killlang = 80
killying = 20
def zhandou(self, yaoguai):
if yaoguai == "狼妖":
self.shengming -= self.killlang
else:
self.shengming -= self.killying
def __init__(self):
self.zuidashengming = self.shengming
def huixue(self, shuliang):
if shuliang + gjblist[xuanmingzi].shengming > self.zuidashengming:
print('已经超过了最大生命值')
return '错误'
else:
self.shengming += shuliang
class futoubing: # 定义斧头兵属性
jiage = 120
shengming = 120
killlang = 20
killying = 80
def zhandou(self, yaoguai):
if yaoguai == "狼妖":
self.shengming -= self.killlang
else:
self.shengming -= self.killying
def __init__(self):
self.zuidashengming = self.shengming
def huixue(self, shuliang):
if shuliang + ftblist[xuanmingzi].shengming > self.zuidashengming:
print('已经超过了最大生命值')
return '错误'
else:
self.shengming += shuliang
gjblist = {} # 创建列表
while True:
jige = int(input('请输入购买几个弓箭手'))
if gongjianbing.jiage * jige > wo.lingshi: # 判断超过灵石数量结果
print(f"你没有足够的灵石,你还差{wo.lingshi - gongjianbing.jiage * jige}")
else:
wo.kouqian(shuliang=gongjianbing.jiage * jige) # 扣钱
for i in range(jige):
while True:
mingzi = str(input('给弓箭兵起个名字'))
if gjblist.get(mingzi, '正确') == '正确': # 判断是不是重复
gjblist[mingzi] = gongjianbing()
print(f'你的弓箭兵名字叫{mingzi}')
break
else:
print('名字重复,请重新输入')
print(f'你还剩下{wo.lingshi}')
break
ftblist = {} # 创建列表
while True:
jige = int(input('请输入购买几个斧头兵'))
if futoubing.jiage * jige > wo.lingshi:
print(f"你没有足够的灵石,你目前只有{wo.lingshi}")
else:
wo.kouqian(shuliang=futoubing.jiage * jige)
for i in range(jige):
while True:
mingzi = str(input('给斧头兵起个名字'))
if ftblist.get(mingzi, '正确') == '正确':
ftblist[mingzi] = futoubing()
print(f'你的斧头兵名字叫{mingzi}')
break
else:
print('名字重复,请重新输入')
print(f'你还剩下{wo.lingshi}')
break
for i in range(7): # 七个森林
if ftblist == {} and gjblist == {}: # 判断列表有没有数据
print('游戏结束')
break
guaiwu = senling[i].animal # 对应怪物
while True:
shangchang = input("请问是出动弓箭兵还是斧头兵")
if shangchang == '斧头兵':
if ftblist == {}:
print('您的斧头兵角色不存在或已全部阵亡')
else:
break
elif shangchang == '弓箭兵':
if gjblist == {}:
print('您的弓箭兵角色不存在或已全部阵亡')
else:
break
else:
print('你啥都没有,结束了')
break
print(f'你选择出动{shangchang}')
if shangchang == '弓箭兵':
for j in gjblist.keys():
print(f'你现在的{shangchang}队伍里,包含:{j}弓箭兵')
elif shangchang == '斧头兵':
for x in ftblist.keys():
print(f'你现在的{shangchang}队伍里,包含:{x}斧头兵')
while True:
xuanmingzi = input('请选择一个角色出战')
if shangchang == '弓箭兵' and gjblist != {} and ftblist != {}:
if xuanmingzi in gjblist:
print(f'你选择了一位名叫{xuanmingzi}的弓箭兵')
break
else:
if xuanmingzi in ftblist:
print(f'你选择了一位名叫{xuanmingzi}的斧头兵')
break
print('游戏开始')
if shangchang == '斧头兵':
ftblist[xuanmingzi].zhandou(yaoguai=guaiwu) # 定义战斗判断
if ftblist[xuanmingzi].shengming > 0:
print(
f"这里是第{senling[i].num}森林,怪物是{senling[i].animal},经过战斗,您的{xuanmingzi}斧头兵还剩下{ftblist[xuanmingzi].shengming}")
else:
print(f"这里是第{senling[i].num}森林,怪物是{senling[i].animal},经过战斗,{xuanmingzi}斧头兵已阵亡,请换一个")
del ftblist[xuanmingzi]
continue
else:
gjblist[xuanmingzi].zhandou(yaoguai=guaiwu)
if gjblist[xuanmingzi].shengming > 0:
print(
f"这里是第{senling[i].num}森林,怪物是{senling[1].animal},经过战斗,您的{xuanmingzi}弓箭兵还剩下{gjblist[xuanmingzi].shengming}")
else:
print(f"这里是第{senling[i].num}森林,怪物是{senling[i].animal},经过战斗,{xuanmingzi}弓箭兵已阵亡,请换一个")
del gjblist[xuanmingzi]
continue
huixue = input('是否回血(是/否)')
if huixue == '是':
while True:
huixueliang = int(input("请输入回多少血"))
if huixueliang > wo.lingshi:
print('灵石不足')
elif huixueliang <= 0:
print('请输入大于0的数')
else:
if shangchang == '弓箭兵':
if gjblist[xuanmingzi].huixue(shuliang=huixueliang) != '错误':
print(f'你的角色{xuanmingzi}生命值已经恢复到{gjblist[xuanmingzi].shengming}')
wo.kouqian(shuliang=huixueliang)
break
elif shangchang == '斧头兵':
if ftblist[xuanmingzi].huixue(shuliang=huixueliang) != '错误':
print(f'你的角色{xuanmingzi}生命值已经恢复到{ftblist[xuanmingzi].shengming}')
wo.kouqian(shuliang=huixueliang)
break
else:
print(f'你还剩下{wo.lingshi}个灵石')
print(f'游戏结束,你还剩下{wo.lingshi}个灵石')


