面向对象

然而并没有你要的那种对象

Posted by youyue on November 21, 2017

本来给自己定的目标每周至少一更,结果周日下午,电脑黑屏,修了半天。笔记本已经服役了五年了,屏幕有点不太好使了,看着眼睛累。不知道是我心理 原因还是其他,时常调侃自己,还没学会编程,眼睛已经快瞎了。想到这些简直太可怕了。程序员朋友们,要保护好自己的眼睛,颈椎,和小肚子呀!

下面请欣赏一段『悦神大战巫妖王』的史诗级代码

import random
class Person:
    def __init__(self,hp,atk,name,job):
        self.hp = hp
        self.atk = atk
        self.name = name
        self.job = job

    def attack(self,dog_menu):
        print('%s 拾起砖头,砸伤了 %s,造成了 %d点伤害'%(self.name,dog_menu.name,self.atk))
        dog_menu.hp -= self.atk
        return ''
    def gun(self,dog_menu):
        print('%s 拿出猎枪,射伤了 %s,造成了 %d点伤害'%(self.name,dog_menu.name,self.atk))
        dog_menu.hp -= self.atk
        return ''
    def car(self, dog_menu):
        print('%s 开动奔驰,撞伤了 %s,造成了 %d点伤害'%(self.name, dog_menu.name,self.atk))
        dog_menu.hp -= self.atk
        return ''

class Monster:
    def __init__(self,hp,atk,name,kind):
        self.hp = hp
        self.atk = atk
        self.name = name
        self.kind = kind

    def bite(self,person_menu):
        print('%s 张开大嘴,咬伤了 %s,造成了 %d点伤害' % (self.name, person_menu.name,self.atk))
        person_menu.hp -= self.atk
        return ''
    def burn(self,person_menu):
        print('%s 口吐烈焰,烧伤了 %s,造成了 %d点伤害' % (self.name, person_menu.name,self.atk))
        person_menu.hp -= self.atk
        return ''
    def frozen(self,person_menu):
        print('%s 使用冰霜,冻伤了 %s,造成了 %d点伤害' % (self.name, person_menu.name,self.atk))
        person_menu.hp -= self.atk
        return ''
flag = 1
a = random.randint(1, 5)
b = random.randint(1, 5)
human = Person(100, a, '悦神', '拯救人类')
evil = Monster(100, b, '巫妖王', '统治人类')
while flag:
    if flag == 1:
        q = human.attack
        w = human.gun
        e = human.car
        ret = random.choice([q,w,e])
        print(ret(evil))
        flag = 2
        print('巫妖王当前生命值:', evil.hp)
        print('人类当前生命值:', human.hp)

    if flag ==2  :
        a = evil.bite
        s = evil.burn
        d = evil.frozen
        ret = random.choice([a,s,d])
        print(ret(human))
        flag = 1
        print('巫妖王当前生命值:', evil.hp)
        print('悦神当前生命值:', human.hp)

    if evil.hp <= 0 :
        flag = False
        print('Human获胜!')
        break
    if human.hp <= 0:
        flag = False
        print('Monster获胜!')

其实这段代码问题很多:比如说,伤害随机之后不会变;比如说,有可能最后两人同归于尽。哈哈哈,等以后有时间可以完善一下。