音乐播放器
小刻的家
 
文章 标签
0

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...

偷税的垃圾作品(一)小游戏篇

这本来是一个作业,写的头疼,转到这里留档

#题目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}个灵石')