• TypeError:Can't instantiate abstract class Ultraman with abstract methods sttack 报错


    报错Can't instantiate abstract class Ultraman with abstract methods sttack

    通过非常仔细的排查,发现错误如下:

    1、单词拼写错误是诱发这个报错的直接原因

      1 from abc import ABCMeta,abstractmethod
      2 from random import randint,randrange
      3 
      4 class Fighter(object,metaclass=ABCMeta):
      5     """战斗者"""
      6 
      7     #通过__slots__魔法限定对象可以绑定的成员变量
      8     __slots__ = ('_name','_hp')
      9 
     10     def __init__(self,name,hp):
     11         """
     12         初始化方法
     13         :param name: 名字
     14         :param hp: 战斗值
     15         """
     16         self._name = name
     17         self._hp = hp
     18 
     19     @property
     20     def name(self):
     21         return self._name
     22 
     23     @property
     24     def hp(self):
     25         return self._hp
     26 
     27     @hp.setter
     28     def hp(self,hp):
     29         self._hp = hp if hp >= 0 else 0
     30 
     31     @property
     32     def alive(self):
     33         return self._hp > 0
     34 
     35     @abstractmethod
     36     def sttack(self,other):
     37         """
     38         攻击
     39         :param other: 被攻击的对象
     40         :return:
     41         """
     42         pass
     43 
     44 class Ultraman(Fighter):
     45     """奥特曼"""
     46     __slots__ = ('_name',"_hp","_mp")
     47 
     48     def __init__(self,name,hp,mp):
     49         """
     50         初始化名字
     51         :param name: 名字
     52         :param hp: 生命值
     53         :param mp: 魔术值
     54         """
     55         super().__init__(name,hp)
     56         self._mp = mp
     57 
     58     def attack(self,other):
     59         other.hp -= randint(15,25)
     60 
     61     def huge_attack(self,other):
     62         """
     63         穷极必杀技(打掉对方至少50点或3/4的血)
     64         :param other: 被攻击对象
     65         :return: 使用成功返回True否则返回False
     66         """
     67 
     68         if self._mp >= 50:
     69             self._mp -= 50
     70             injury = other.hp * 3//4
     71             injury = injury if injury >= 50 else 50
     72             other.hp -= injury
     73             return True
     74         else:
     75             self.attack(other)
     76             return False
     77 
     78     def magic_attack(self,others):
     79         """
     80         魔法攻击
     81         :param others: 被攻击的群体
     82         :return: 使用魔法成功返回TRUE否则返回False
     83 
     84         """
     85         if self._mp >= 20:
     86             self._mp -= 20
     87             for temp in others:
     88                     if temp.alive:
     89                         temp.hp -= randint(10,15)
     90             return True
     91         else:
     92             return False
     93 
     94     def resume(self):
     95         """恢复魔法值"""
     96         incr_point = randint(1,10)
     97         self._mp += incr_point
     98         return incr_point
     99 
    100     def __str__(self):
    101         return '~~~%s奥特曼~~~
    '%self._name + 
    102             '生命值:%d
    '%self._hp + 
    103             '魔法值:%d
    '%self._mp
    104 
    105 class Monster(Fighter):
    106     """小怪兽"""
    107 
    108     __slots__ = ('_name','_hp')
    109 
    110     def attack(self,other):
    111         other.hp -= randint(10,20)
    112 
    113     def __str__(self):
    114         return '~~~%s小怪兽~~~
    ' % self._name + 
    115             '生命值:%d
    '%self._hp
    116 
    117 def is_any_alive(monsters):
    118     """判断有没有活着的小怪兽"""
    119     for monster in monsters:
    120         if monster.alive > 0:
    121             return True
    122     return False
    123 
    124 def select_alive_one(monsters):
    125     """选中一只活着的小怪兽"""
    126     monsters_len = len(monsters)
    127     while True:
    128         index = randrange(monsters_len)
    129         monster = monsters[index]
    130         if monster.alive > 0:
    131             return monster
    132 
    133 def display_info(ultraman,monsters):
    134     """显示奥特曼和小怪兽的信息"""
    135     print(ultraman)
    136     for monster in monsters:
    137         print(monster,end = '')
    138 
    139 def main():
    140     u = Ultraman('骆昊',1000,120)
    141     m1 = Monster('狄仁杰',250)
    142     m2 = Monster('白元芳',500)
    143     m3 = Monster('张大头',750)
    144     ms = [m1,m2,m3]
    145     fight_round = 1
    146     while u.alive and is_any_alive(ms):
    147         print('=======第%02d回合======='%fight_round)
    148         m = select_alive_one(ms) #选中一个小怪兽
    149         skill = randint(1,10) #通过随机数选择使用哪种技能
    150         if skill <= 6:#60%的概率使用普通攻击
    151             print('%s使用普通攻击打了%s'%(u.name,m.nama))
    152             u.attack(m)
    153             print('%s的魔法值恢复了%d点'%(u.name,u.resume()))
    154         elif skill <= 9:
    155             if u.magic_attack(ms):
    156                 print('%s使用了魔法攻击.'%u.name)
    157             else:
    158                 print('%s使用魔法失败.'%u.name)
    159     else:
    160         if u.huge_attack(m):
    161             print('%s使用究极必杀技虐了%s'%(u.name,m.name))
    162         else:
    163             print('%s使用普通攻击必杀虐了%s'%(u.name,m.name))
    164             print('%s的魔法值恢复了%d点.'%(u.name,u.resume()))
    165 
    166         if m.alive >0: #如果选中的小该收没有死就回寄奥特曼
    167             print('%s回击了%s'%(m.name,u.name))
    168             m.attack(u)
    169         display_info(u,ms)  #每个回合结束收显示奥特曼和小怪兽的信息
    170         fight_round += 1
    171         print('
    ========战斗结束!========
    ')
    172         if u.alive >0:
    173             print('%s奥特曼胜利!'%u.name)
    174 
    175         else:
    176             print('小怪兽胜利!')
    177 if __name__ == '__main__':
    178     main()
    View Code

     2、还有一些缩进错误,导致运行时不符合预期效果。

    修改后的代码如下:

      1 from abc import ABCMeta,abstractmethod
      2 from random import randint,randrange
      3 
      4 class Fighter(object,metaclass=ABCMeta):
      5     """战斗者"""
      6 
      7     #通过__slots__魔法限定对象可以绑定的成员变量
      8     __slots__ = ('_name','_hp')
      9 
     10     def __init__(self,name,hp):
     11         """
     12         初始化方法
     13         :param name: 名字
     14         :param hp: 战斗值
     15         """
     16         self._name = name
     17         self._hp = hp
     18 
     19     @property
     20     def name(self):
     21         return self._name
     22 
     23     @property
     24     def hp(self):
     25         return self._hp
     26 
     27     @hp.setter
     28     def hp(self,hp):
     29         self._hp = hp if hp >= 0 else 0
     30 
     31     @property
     32     def alive(self):
     33         return self._hp > 0
     34 
     35     @abstractmethod
     36     # def sttack(self,other):
     37     def attack(self, other):
     38         """
     39         攻击
     40         :param other: 被攻击的对象
     41         :return:
     42         """
     43         pass
     44 
     45 class Ultraman(Fighter):
     46     """奥特曼"""
     47     __slots__ = ('_name',"_hp","_mp")
     48 
     49     def __init__(self,name,hp,mp):
     50         """
     51         初始化名字
     52         :param name: 名字
     53         :param hp: 生命值
     54         :param mp: 魔术值
     55         """
     56         super().__init__(name,hp)
     57         self._mp = mp
     58 
     59     def attack(self,other):
     60         other.hp -= randint(15,25)
     61 
     62     def huge_attack(self,other):
     63         """
     64         穷极必杀技(打掉对方至少50点或3/4的血)
     65         :param other: 被攻击对象
     66         :return: 使用成功返回True否则返回False
     67         """
     68 
     69         if self._mp >= 50:
     70             self._mp -= 50
     71             injury = other.hp * 3//4
     72             injury = injury if injury >= 50 else 50
     73             other.hp -= injury
     74             return True
     75         else:
     76             self.attack(other)
     77             return False
     78 
     79     def magic_attack(self,others):
     80         """
     81         魔法攻击
     82         :param others: 被攻击的群体
     83         :return: 使用魔法成功返回TRUE否则返回False
     84 
     85         """
     86         if self._mp >= 20:
     87             self._mp -= 20
     88             for temp in others:
     89                 #之前是这样写的
     90                     # if temp.alive:
     91                     #     temp.hp -= randint(10,15)
     92                 if temp.alive:
     93                     temp.hp -= randint(10,15)
     94             return True
     95         else:
     96             return False
     97 
     98     def resume(self):
     99         """恢复魔法值"""
    100         incr_point = randint(1,10)
    101         self._mp += incr_point
    102         return incr_point
    103 
    104     def __str__(self):
    105         return '~~~%s奥特曼~~~
    '%self._name + 
    106             '生命值:%d
    ' % self._hp + 
    107             '魔法值:%d
    ' % self._mp
    108 
    109 class Monster(Fighter):
    110     """小怪兽"""
    111 
    112     __slots__ = ('_name','_hp')
    113 
    114     def attack(self,other):
    115         other.hp -= randint(10,20)
    116 
    117     def __str__(self):
    118         return '~~~%s小怪兽~~~
    ' % self._name + 
    119             '生命值:%d
    '%self._hp
    120 
    121 def is_any_alive(monsters):
    122     """判断有没有活着的小怪兽"""
    123     for monster in monsters:
    124         if monster.alive > 0:
    125             return True
    126     return False
    127 
    128 def select_alive_one(monsters):
    129     """选中一只活着的小怪兽"""
    130     monsters_len = len(monsters)
    131     while True:
    132         index = randrange(monsters_len)
    133         monster = monsters[index]
    134         if monster.alive > 0:
    135             return monster
    136 
    137 def display_info(ultraman,monsters):
    138     """显示奥特曼和小怪兽的信息"""
    139     print(ultraman)
    140     for monster in monsters:
    141         print(monster,end = '')
    142 
    143 def main():
    144     u = Ultraman('骆昊',1000,120)
    145     m1 = Monster('狄仁杰',250)
    146     m2 = Monster('白元芳',500)
    147     m3 = Monster('张大头',750)
    148     ms = [m1,m2,m3]
    149     fight_round = 1
    150     while u.alive and is_any_alive(ms):
    151         print('=======第%02d回合======='%fight_round)
    152         m = select_alive_one(ms) #选中一个小怪兽
    153         skill = randint(1,10) #通过随机数选择使用哪种技能
    154         if skill <= 6:#60%的概率使用普通攻击
    155             print('%s使用普通攻击打了%s'%(u.name,m.name))
    156             u.attack(m)
    157             print('%s的魔法值恢复了%d点'%(u.name,u.resume()))
    158         elif skill <= 9:
    159             if u.magic_attack(ms):
    160                 print('%s使用了魔法攻击.' % u.name)
    161             else:
    162                 print('%s使用魔法失败.'% u.name)
    163         else:
    164             if u.huge_attack(m):
    165                 print('%s使用究极必杀技虐了%s' % (u.name,m.name))
    166             else:
    167                 print('%s使用普通攻击必杀虐了%s' % (u.name,m.name))
    168                 print('%s的魔法值恢复了%d点.'%(u.name,u.resume()))
    169 
    170         if m.alive >0: #如果选中的小该收没有死就回寄奥特曼
    171             print('%s回击了%s'%(m.name,u.name))
    172             m.attack(u)
    173         display_info(u,ms)  #每个回合结束收显示奥特曼和小怪兽的信息
    174         fight_round += 1
    175     print('
    ========战斗结束!========
    ')
    176     if u.alive >0:
    177         print('%s奥特曼胜利!'%u.name)
    178 
    179     else:
    180         print('小怪兽胜利!')
    181 if __name__ == '__main__':
    182     main()
    View Code

    运行结果:

      1 =======第01回合=======
      2 骆昊使用普通攻击打了狄仁杰
      3 骆昊的魔法值恢复了10点
      4 狄仁杰回击了骆昊
      5 ~~~骆昊奥特曼~~~
      6 生命值:986
      7 魔法值:130
      8 
      9 ~~~狄仁杰小怪兽~~~
     10 生命值:231
     11 ~~~白元芳小怪兽~~~
     12 生命值:500
     13 ~~~张大头小怪兽~~~
     14 生命值:750
     15 =======第02回合=======
     16 骆昊使用了魔法攻击.
     17 张大头回击了骆昊
     18 ~~~骆昊奥特曼~~~
     19 生命值:968
     20 魔法值:110
     21 
     22 ~~~狄仁杰小怪兽~~~
     23 生命值:220
     24 ~~~白元芳小怪兽~~~
     25 生命值:486
     26 ~~~张大头小怪兽~~~
     27 生命值:740
     28 =======第03回合=======
     29 骆昊使用了魔法攻击.
     30 张大头回击了骆昊
     31 ~~~骆昊奥特曼~~~
     32 生命值:949
     33 魔法值:90
     34 
     35 ~~~狄仁杰小怪兽~~~
     36 生命值:205
     37 ~~~白元芳小怪兽~~~
     38 生命值:473
     39 ~~~张大头小怪兽~~~
     40 生命值:729
     41 =======第04回合=======
     42 骆昊使用普通攻击打了白元芳
     43 骆昊的魔法值恢复了7点
     44 白元芳回击了骆昊
     45 ~~~骆昊奥特曼~~~
     46 生命值:934
     47 魔法值:97
     48 
     49 ~~~狄仁杰小怪兽~~~
     50 生命值:205
     51 ~~~白元芳小怪兽~~~
     52 生命值:448
     53 ~~~张大头小怪兽~~~
     54 生命值:729
     55 =======第05回合=======
     56 骆昊使用普通攻击打了白元芳
     57 骆昊的魔法值恢复了6点
     58 白元芳回击了骆昊
     59 ~~~骆昊奥特曼~~~
     60 生命值:924
     61 魔法值:103
     62 
     63 ~~~狄仁杰小怪兽~~~
     64 生命值:205
     65 ~~~白元芳小怪兽~~~
     66 生命值:426
     67 ~~~张大头小怪兽~~~
     68 生命值:729
     69 =======第06回合=======
     70 骆昊使用普通攻击打了白元芳
     71 骆昊的魔法值恢复了4点
     72 白元芳回击了骆昊
     73 ~~~骆昊奥特曼~~~
     74 生命值:906
     75 魔法值:107
     76 
     77 ~~~狄仁杰小怪兽~~~
     78 生命值:205
     79 ~~~白元芳小怪兽~~~
     80 生命值:410
     81 ~~~张大头小怪兽~~~
     82 生命值:729
     83 =======第07回合=======
     84 骆昊使用普通攻击打了白元芳
     85 骆昊的魔法值恢复了10点
     86 白元芳回击了骆昊
     87 ~~~骆昊奥特曼~~~
     88 生命值:895
     89 魔法值:117
     90 
     91 ~~~狄仁杰小怪兽~~~
     92 生命值:205
     93 ~~~白元芳小怪兽~~~
     94 生命值:390
     95 ~~~张大头小怪兽~~~
     96 生命值:729
     97 =======第08回合=======
     98 骆昊使用普通攻击打了狄仁杰
     99 骆昊的魔法值恢复了3点
    100 狄仁杰回击了骆昊
    101 ~~~骆昊奥特曼~~~
    102 生命值:881
    103 魔法值:120
    104 
    105 ~~~狄仁杰小怪兽~~~
    106 生命值:186
    107 ~~~白元芳小怪兽~~~
    108 生命值:390
    109 ~~~张大头小怪兽~~~
    110 生命值:729
    111 =======第09回合=======
    112 骆昊使用究极必杀技虐了狄仁杰
    113 狄仁杰回击了骆昊
    114 ~~~骆昊奥特曼~~~
    115 生命值:868
    116 魔法值:70
    117 
    118 ~~~狄仁杰小怪兽~~~
    119 生命值:47
    120 ~~~白元芳小怪兽~~~
    121 生命值:390
    122 ~~~张大头小怪兽~~~
    123 生命值:729
    124 =======第10回合=======
    125 骆昊使用普通攻击打了狄仁杰
    126 骆昊的魔法值恢复了4点
    127 狄仁杰回击了骆昊
    128 ~~~骆昊奥特曼~~~
    129 生命值:851
    130 魔法值:74
    131 
    132 ~~~狄仁杰小怪兽~~~
    133 生命值:32
    134 ~~~白元芳小怪兽~~~
    135 生命值:390
    136 ~~~张大头小怪兽~~~
    137 生命值:729
    138 =======第11回合=======
    139 骆昊使用了魔法攻击.
    140 张大头回击了骆昊
    141 ~~~骆昊奥特曼~~~
    142 生命值:838
    143 魔法值:54
    144 
    145 ~~~狄仁杰小怪兽~~~
    146 生命值:20
    147 ~~~白元芳小怪兽~~~
    148 生命值:375
    149 ~~~张大头小怪兽~~~
    150 生命值:716
    151 =======第12回合=======
    152 骆昊使用普通攻击打了张大头
    153 骆昊的魔法值恢复了6点
    154 张大头回击了骆昊
    155 ~~~骆昊奥特曼~~~
    156 生命值:824
    157 魔法值:60
    158 
    159 ~~~狄仁杰小怪兽~~~
    160 生命值:20
    161 ~~~白元芳小怪兽~~~
    162 生命值:375
    163 ~~~张大头小怪兽~~~
    164 生命值:701
    165 =======第13回合=======
    166 骆昊使用普通攻击打了狄仁杰
    167 骆昊的魔法值恢复了4点
    168 ~~~骆昊奥特曼~~~
    169 生命值:824
    170 魔法值:64
    171 
    172 ~~~狄仁杰小怪兽~~~
    173 生命值:0
    174 ~~~白元芳小怪兽~~~
    175 生命值:375
    176 ~~~张大头小怪兽~~~
    177 生命值:701
    178 =======第14回合=======
    179 骆昊使用究极必杀技虐了白元芳
    180 白元芳回击了骆昊
    181 ~~~骆昊奥特曼~~~
    182 生命值:805
    183 魔法值:14
    184 
    185 ~~~狄仁杰小怪兽~~~
    186 生命值:0
    187 ~~~白元芳小怪兽~~~
    188 生命值:94
    189 ~~~张大头小怪兽~~~
    190 生命值:701
    191 =======第15回合=======
    192 骆昊使用普通攻击打了张大头
    193 骆昊的魔法值恢复了7点
    194 张大头回击了骆昊
    195 ~~~骆昊奥特曼~~~
    196 生命值:787
    197 魔法值:21
    198 
    199 ~~~狄仁杰小怪兽~~~
    200 生命值:0
    201 ~~~白元芳小怪兽~~~
    202 生命值:94
    203 ~~~张大头小怪兽~~~
    204 生命值:678
    205 =======第16回合=======
    206 骆昊使用普通攻击必杀虐了白元芳
    207 骆昊的魔法值恢复了4点.
    208 白元芳回击了骆昊
    209 ~~~骆昊奥特曼~~~
    210 生命值:777
    211 魔法值:25
    212 
    213 ~~~狄仁杰小怪兽~~~
    214 生命值:0
    215 ~~~白元芳小怪兽~~~
    216 生命值:78
    217 ~~~张大头小怪兽~~~
    218 生命值:678
    219 =======第17回合=======
    220 骆昊使用普通攻击必杀虐了白元芳
    221 骆昊的魔法值恢复了5点.
    222 白元芳回击了骆昊
    223 ~~~骆昊奥特曼~~~
    224 生命值:766
    225 魔法值:30
    226 
    227 ~~~狄仁杰小怪兽~~~
    228 生命值:0
    229 ~~~白元芳小怪兽~~~
    230 生命值:63
    231 ~~~张大头小怪兽~~~
    232 生命值:678
    233 =======第18回合=======
    234 骆昊使用普通攻击打了张大头
    235 骆昊的魔法值恢复了5点
    236 张大头回击了骆昊
    237 ~~~骆昊奥特曼~~~
    238 生命值:748
    239 魔法值:35
    240 
    241 ~~~狄仁杰小怪兽~~~
    242 生命值:0
    243 ~~~白元芳小怪兽~~~
    244 生命值:63
    245 ~~~张大头小怪兽~~~
    246 生命值:656
    247 =======第19回合=======
    248 骆昊使用普通攻击打了张大头
    249 骆昊的魔法值恢复了2点
    250 张大头回击了骆昊
    251 ~~~骆昊奥特曼~~~
    252 生命值:732
    253 魔法值:37
    254 
    255 ~~~狄仁杰小怪兽~~~
    256 生命值:0
    257 ~~~白元芳小怪兽~~~
    258 生命值:63
    259 ~~~张大头小怪兽~~~
    260 生命值:631
    261 =======第20回合=======
    262 骆昊使用了魔法攻击.
    263 白元芳回击了骆昊
    264 ~~~骆昊奥特曼~~~
    265 生命值:718
    266 魔法值:17
    267 
    268 ~~~狄仁杰小怪兽~~~
    269 生命值:0
    270 ~~~白元芳小怪兽~~~
    271 生命值:53
    272 ~~~张大头小怪兽~~~
    273 生命值:617
    274 =======第21回合=======
    275 骆昊使用普通攻击打了白元芳
    276 骆昊的魔法值恢复了3点
    277 白元芳回击了骆昊
    278 ~~~骆昊奥特曼~~~
    279 生命值:702
    280 魔法值:20
    281 
    282 ~~~狄仁杰小怪兽~~~
    283 生命值:0
    284 ~~~白元芳小怪兽~~~
    285 生命值:35
    286 ~~~张大头小怪兽~~~
    287 生命值:617
    288 =======第22回合=======
    289 骆昊使用普通攻击打了张大头
    290 骆昊的魔法值恢复了8点
    291 张大头回击了骆昊
    292 ~~~骆昊奥特曼~~~
    293 生命值:683
    294 魔法值:28
    295 
    296 ~~~狄仁杰小怪兽~~~
    297 生命值:0
    298 ~~~白元芳小怪兽~~~
    299 生命值:35
    300 ~~~张大头小怪兽~~~
    301 生命值:602
    302 =======第23回合=======
    303 骆昊使用普通攻击打了张大头
    304 骆昊的魔法值恢复了6点
    305 张大头回击了骆昊
    306 ~~~骆昊奥特曼~~~
    307 生命值:671
    308 魔法值:34
    309 
    310 ~~~狄仁杰小怪兽~~~
    311 生命值:0
    312 ~~~白元芳小怪兽~~~
    313 生命值:35
    314 ~~~张大头小怪兽~~~
    315 生命值:584
    316 =======第24回合=======
    317 骆昊使用了魔法攻击.
    318 张大头回击了骆昊
    319 ~~~骆昊奥特曼~~~
    320 生命值:652
    321 魔法值:14
    322 
    323 ~~~狄仁杰小怪兽~~~
    324 生命值:0
    325 ~~~白元芳小怪兽~~~
    326 生命值:20
    327 ~~~张大头小怪兽~~~
    328 生命值:570
    329 =======第25回合=======
    330 骆昊使用魔法失败.
    331 张大头回击了骆昊
    332 ~~~骆昊奥特曼~~~
    333 生命值:635
    334 魔法值:14
    335 
    336 ~~~狄仁杰小怪兽~~~
    337 生命值:0
    338 ~~~白元芳小怪兽~~~
    339 生命值:20
    340 ~~~张大头小怪兽~~~
    341 生命值:570
    342 =======第26回合=======
    343 骆昊使用普通攻击必杀虐了张大头
    344 骆昊的魔法值恢复了1点.
    345 张大头回击了骆昊
    346 ~~~骆昊奥特曼~~~
    347 生命值:615
    348 魔法值:15
    349 
    350 ~~~狄仁杰小怪兽~~~
    351 生命值:0
    352 ~~~白元芳小怪兽~~~
    353 生命值:20
    354 ~~~张大头小怪兽~~~
    355 生命值:555
    356 =======第27回合=======
    357 骆昊使用普通攻击打了张大头
    358 骆昊的魔法值恢复了10点
    359 张大头回击了骆昊
    360 ~~~骆昊奥特曼~~~
    361 生命值:600
    362 魔法值:25
    363 
    364 ~~~狄仁杰小怪兽~~~
    365 生命值:0
    366 ~~~白元芳小怪兽~~~
    367 生命值:20
    368 ~~~张大头小怪兽~~~
    369 生命值:540
    370 =======第28回合=======
    371 骆昊使用普通攻击打了张大头
    372 骆昊的魔法值恢复了3点
    373 张大头回击了骆昊
    374 ~~~骆昊奥特曼~~~
    375 生命值:589
    376 魔法值:28
    377 
    378 ~~~狄仁杰小怪兽~~~
    379 生命值:0
    380 ~~~白元芳小怪兽~~~
    381 生命值:20
    382 ~~~张大头小怪兽~~~
    383 生命值:521
    384 =======第29回合=======
    385 骆昊使用普通攻击打了白元芳
    386 骆昊的魔法值恢复了3点
    387 白元芳回击了骆昊
    388 ~~~骆昊奥特曼~~~
    389 生命值:575
    390 魔法值:31
    391 
    392 ~~~狄仁杰小怪兽~~~
    393 生命值:0
    394 ~~~白元芳小怪兽~~~
    395 生命值:2
    396 ~~~张大头小怪兽~~~
    397 生命值:521
    398 =======第30回合=======
    399 骆昊使用普通攻击打了张大头
    400 骆昊的魔法值恢复了10点
    401 张大头回击了骆昊
    402 ~~~骆昊奥特曼~~~
    403 生命值:559
    404 魔法值:41
    405 
    406 ~~~狄仁杰小怪兽~~~
    407 生命值:0
    408 ~~~白元芳小怪兽~~~
    409 生命值:2
    410 ~~~张大头小怪兽~~~
    411 生命值:506
    412 =======第31回合=======
    413 骆昊使用普通攻击打了白元芳
    414 骆昊的魔法值恢复了6点
    415 ~~~骆昊奥特曼~~~
    416 生命值:559
    417 魔法值:47
    418 
    419 ~~~狄仁杰小怪兽~~~
    420 生命值:0
    421 ~~~白元芳小怪兽~~~
    422 生命值:0
    423 ~~~张大头小怪兽~~~
    424 生命值:506
    425 =======第32回合=======
    426 骆昊使用了魔法攻击.
    427 张大头回击了骆昊
    428 ~~~骆昊奥特曼~~~
    429 生命值:546
    430 魔法值:27
    431 
    432 ~~~狄仁杰小怪兽~~~
    433 生命值:0
    434 ~~~白元芳小怪兽~~~
    435 生命值:0
    436 ~~~张大头小怪兽~~~
    437 生命值:494
    438 =======第33回合=======
    439 骆昊使用了魔法攻击.
    440 张大头回击了骆昊
    441 ~~~骆昊奥特曼~~~
    442 生命值:529
    443 魔法值:7
    444 
    445 ~~~狄仁杰小怪兽~~~
    446 生命值:0
    447 ~~~白元芳小怪兽~~~
    448 生命值:0
    449 ~~~张大头小怪兽~~~
    450 生命值:482
    451 =======第34回合=======
    452 骆昊使用普通攻击打了张大头
    453 骆昊的魔法值恢复了1点
    454 张大头回击了骆昊
    455 ~~~骆昊奥特曼~~~
    456 生命值:511
    457 魔法值:8
    458 
    459 ~~~狄仁杰小怪兽~~~
    460 生命值:0
    461 ~~~白元芳小怪兽~~~
    462 生命值:0
    463 ~~~张大头小怪兽~~~
    464 生命值:463
    465 =======第35回合=======
    466 骆昊使用普通攻击打了张大头
    467 骆昊的魔法值恢复了2点
    468 张大头回击了骆昊
    469 ~~~骆昊奥特曼~~~
    470 生命值:495
    471 魔法值:10
    472 
    473 ~~~狄仁杰小怪兽~~~
    474 生命值:0
    475 ~~~白元芳小怪兽~~~
    476 生命值:0
    477 ~~~张大头小怪兽~~~
    478 生命值:442
    479 =======第36回合=======
    480 骆昊使用普通攻击打了张大头
    481 骆昊的魔法值恢复了9点
    482 张大头回击了骆昊
    483 ~~~骆昊奥特曼~~~
    484 生命值:485
    485 魔法值:19
    486 
    487 ~~~狄仁杰小怪兽~~~
    488 生命值:0
    489 ~~~白元芳小怪兽~~~
    490 生命值:0
    491 ~~~张大头小怪兽~~~
    492 生命值:417
    493 =======第37回合=======
    494 骆昊使用普通攻击打了张大头
    495 骆昊的魔法值恢复了2点
    496 张大头回击了骆昊
    497 ~~~骆昊奥特曼~~~
    498 生命值:471
    499 魔法值:21
    500 
    501 ~~~狄仁杰小怪兽~~~
    502 生命值:0
    503 ~~~白元芳小怪兽~~~
    504 生命值:0
    505 ~~~张大头小怪兽~~~
    506 生命值:396
    507 =======第38回合=======
    508 骆昊使用普通攻击打了张大头
    509 骆昊的魔法值恢复了9点
    510 张大头回击了骆昊
    511 ~~~骆昊奥特曼~~~
    512 生命值:459
    513 魔法值:30
    514 
    515 ~~~狄仁杰小怪兽~~~
    516 生命值:0
    517 ~~~白元芳小怪兽~~~
    518 生命值:0
    519 ~~~张大头小怪兽~~~
    520 生命值:381
    521 =======第39回合=======
    522 骆昊使用普通攻击打了张大头
    523 骆昊的魔法值恢复了10点
    524 张大头回击了骆昊
    525 ~~~骆昊奥特曼~~~
    526 生命值:439
    527 魔法值:40
    528 
    529 ~~~狄仁杰小怪兽~~~
    530 生命值:0
    531 ~~~白元芳小怪兽~~~
    532 生命值:0
    533 ~~~张大头小怪兽~~~
    534 生命值:365
    535 =======第40回合=======
    536 骆昊使用普通攻击打了张大头
    537 骆昊的魔法值恢复了2点
    538 张大头回击了骆昊
    539 ~~~骆昊奥特曼~~~
    540 生命值:419
    541 魔法值:42
    542 
    543 ~~~狄仁杰小怪兽~~~
    544 生命值:0
    545 ~~~白元芳小怪兽~~~
    546 生命值:0
    547 ~~~张大头小怪兽~~~
    548 生命值:349
    549 =======第41回合=======
    550 骆昊使用普通攻击打了张大头
    551 骆昊的魔法值恢复了8点
    552 张大头回击了骆昊
    553 ~~~骆昊奥特曼~~~
    554 生命值:404
    555 魔法值:50
    556 
    557 ~~~狄仁杰小怪兽~~~
    558 生命值:0
    559 ~~~白元芳小怪兽~~~
    560 生命值:0
    561 ~~~张大头小怪兽~~~
    562 生命值:324
    563 =======第42回合=======
    564 骆昊使用了魔法攻击.
    565 张大头回击了骆昊
    566 ~~~骆昊奥特曼~~~
    567 生命值:390
    568 魔法值:30
    569 
    570 ~~~狄仁杰小怪兽~~~
    571 生命值:0
    572 ~~~白元芳小怪兽~~~
    573 生命值:0
    574 ~~~张大头小怪兽~~~
    575 生命值:313
    576 =======第43回合=======
    577 骆昊使用普通攻击打了张大头
    578 骆昊的魔法值恢复了3点
    579 张大头回击了骆昊
    580 ~~~骆昊奥特曼~~~
    581 生命值:375
    582 魔法值:33
    583 
    584 ~~~狄仁杰小怪兽~~~
    585 生命值:0
    586 ~~~白元芳小怪兽~~~
    587 生命值:0
    588 ~~~张大头小怪兽~~~
    589 生命值:290
    590 =======第44回合=======
    591 骆昊使用普通攻击打了张大头
    592 骆昊的魔法值恢复了4点
    593 张大头回击了骆昊
    594 ~~~骆昊奥特曼~~~
    595 生命值:358
    596 魔法值:37
    597 
    598 ~~~狄仁杰小怪兽~~~
    599 生命值:0
    600 ~~~白元芳小怪兽~~~
    601 生命值:0
    602 ~~~张大头小怪兽~~~
    603 生命值:273
    604 =======第45回合=======
    605 骆昊使用了魔法攻击.
    606 张大头回击了骆昊
    607 ~~~骆昊奥特曼~~~
    608 生命值:341
    609 魔法值:17
    610 
    611 ~~~狄仁杰小怪兽~~~
    612 生命值:0
    613 ~~~白元芳小怪兽~~~
    614 生命值:0
    615 ~~~张大头小怪兽~~~
    616 生命值:263
    617 =======第46回合=======
    618 骆昊使用魔法失败.
    619 张大头回击了骆昊
    620 ~~~骆昊奥特曼~~~
    621 生命值:326
    622 魔法值:17
    623 
    624 ~~~狄仁杰小怪兽~~~
    625 生命值:0
    626 ~~~白元芳小怪兽~~~
    627 生命值:0
    628 ~~~张大头小怪兽~~~
    629 生命值:263
    630 =======第47回合=======
    631 骆昊使用普通攻击打了张大头
    632 骆昊的魔法值恢复了3点
    633 张大头回击了骆昊
    634 ~~~骆昊奥特曼~~~
    635 生命值:316
    636 魔法值:20
    637 
    638 ~~~狄仁杰小怪兽~~~
    639 生命值:0
    640 ~~~白元芳小怪兽~~~
    641 生命值:0
    642 ~~~张大头小怪兽~~~
    643 生命值:244
    644 =======第48回合=======
    645 骆昊使用普通攻击打了张大头
    646 骆昊的魔法值恢复了4点
    647 张大头回击了骆昊
    648 ~~~骆昊奥特曼~~~
    649 生命值:297
    650 魔法值:24
    651 
    652 ~~~狄仁杰小怪兽~~~
    653 生命值:0
    654 ~~~白元芳小怪兽~~~
    655 生命值:0
    656 ~~~张大头小怪兽~~~
    657 生命值:229
    658 =======第49回合=======
    659 骆昊使用普通攻击打了张大头
    660 骆昊的魔法值恢复了7点
    661 张大头回击了骆昊
    662 ~~~骆昊奥特曼~~~
    663 生命值:285
    664 魔法值:31
    665 
    666 ~~~狄仁杰小怪兽~~~
    667 生命值:0
    668 ~~~白元芳小怪兽~~~
    669 生命值:0
    670 ~~~张大头小怪兽~~~
    671 生命值:209
    672 =======第50回合=======
    673 骆昊使用了魔法攻击.
    674 张大头回击了骆昊
    675 ~~~骆昊奥特曼~~~
    676 生命值:267
    677 魔法值:11
    678 
    679 ~~~狄仁杰小怪兽~~~
    680 生命值:0
    681 ~~~白元芳小怪兽~~~
    682 生命值:0
    683 ~~~张大头小怪兽~~~
    684 生命值:195
    685 =======第51回合=======
    686 骆昊使用魔法失败.
    687 张大头回击了骆昊
    688 ~~~骆昊奥特曼~~~
    689 生命值:257
    690 魔法值:11
    691 
    692 ~~~狄仁杰小怪兽~~~
    693 生命值:0
    694 ~~~白元芳小怪兽~~~
    695 生命值:0
    696 ~~~张大头小怪兽~~~
    697 生命值:195
    698 =======第52回合=======
    699 骆昊使用普通攻击必杀虐了张大头
    700 骆昊的魔法值恢复了2点.
    701 张大头回击了骆昊
    702 ~~~骆昊奥特曼~~~
    703 生命值:242
    704 魔法值:13
    705 
    706 ~~~狄仁杰小怪兽~~~
    707 生命值:0
    708 ~~~白元芳小怪兽~~~
    709 生命值:0
    710 ~~~张大头小怪兽~~~
    711 生命值:180
    712 =======第53回合=======
    713 骆昊使用魔法失败.
    714 张大头回击了骆昊
    715 ~~~骆昊奥特曼~~~
    716 生命值:224
    717 魔法值:13
    718 
    719 ~~~狄仁杰小怪兽~~~
    720 生命值:0
    721 ~~~白元芳小怪兽~~~
    722 生命值:0
    723 ~~~张大头小怪兽~~~
    724 生命值:180
    725 =======第54回合=======
    726 骆昊使用普通攻击打了张大头
    727 骆昊的魔法值恢复了1点
    728 张大头回击了骆昊
    729 ~~~骆昊奥特曼~~~
    730 生命值:214
    731 魔法值:14
    732 
    733 ~~~狄仁杰小怪兽~~~
    734 生命值:0
    735 ~~~白元芳小怪兽~~~
    736 生命值:0
    737 ~~~张大头小怪兽~~~
    738 生命值:157
    739 =======第55回合=======
    740 骆昊使用普通攻击必杀虐了张大头
    741 骆昊的魔法值恢复了3点.
    742 张大头回击了骆昊
    743 ~~~骆昊奥特曼~~~
    744 生命值:202
    745 魔法值:17
    746 
    747 ~~~狄仁杰小怪兽~~~
    748 生命值:0
    749 ~~~白元芳小怪兽~~~
    750 生命值:0
    751 ~~~张大头小怪兽~~~
    752 生命值:133
    753 =======第56回合=======
    754 骆昊使用普通攻击打了张大头
    755 骆昊的魔法值恢复了2点
    756 张大头回击了骆昊
    757 ~~~骆昊奥特曼~~~
    758 生命值:190
    759 魔法值:19
    760 
    761 ~~~狄仁杰小怪兽~~~
    762 生命值:0
    763 ~~~白元芳小怪兽~~~
    764 生命值:0
    765 ~~~张大头小怪兽~~~
    766 生命值:113
    767 =======第57回合=======
    768 骆昊使用魔法失败.
    769 张大头回击了骆昊
    770 ~~~骆昊奥特曼~~~
    771 生命值:173
    772 魔法值:19
    773 
    774 ~~~狄仁杰小怪兽~~~
    775 生命值:0
    776 ~~~白元芳小怪兽~~~
    777 生命值:0
    778 ~~~张大头小怪兽~~~
    779 生命值:113
    780 =======第58回合=======
    781 骆昊使用普通攻击打了张大头
    782 骆昊的魔法值恢复了4点
    783 张大头回击了骆昊
    784 ~~~骆昊奥特曼~~~
    785 生命值:161
    786 魔法值:23
    787 
    788 ~~~狄仁杰小怪兽~~~
    789 生命值:0
    790 ~~~白元芳小怪兽~~~
    791 生命值:0
    792 ~~~张大头小怪兽~~~
    793 生命值:96
    794 =======第59回合=======
    795 骆昊使用了魔法攻击.
    796 张大头回击了骆昊
    797 ~~~骆昊奥特曼~~~
    798 生命值:149
    799 魔法值:3
    800 
    801 ~~~狄仁杰小怪兽~~~
    802 生命值:0
    803 ~~~白元芳小怪兽~~~
    804 生命值:0
    805 ~~~张大头小怪兽~~~
    806 生命值:83
    807 =======第60回合=======
    808 骆昊使用普通攻击打了张大头
    809 骆昊的魔法值恢复了6点
    810 张大头回击了骆昊
    811 ~~~骆昊奥特曼~~~
    812 生命值:138
    813 魔法值:9
    814 
    815 ~~~狄仁杰小怪兽~~~
    816 生命值:0
    817 ~~~白元芳小怪兽~~~
    818 生命值:0
    819 ~~~张大头小怪兽~~~
    820 生命值:58
    821 =======第61回合=======
    822 骆昊使用普通攻击打了张大头
    823 骆昊的魔法值恢复了1点
    824 张大头回击了骆昊
    825 ~~~骆昊奥特曼~~~
    826 生命值:120
    827 魔法值:10
    828 
    829 ~~~狄仁杰小怪兽~~~
    830 生命值:0
    831 ~~~白元芳小怪兽~~~
    832 生命值:0
    833 ~~~张大头小怪兽~~~
    834 生命值:37
    835 =======第62回合=======
    836 骆昊使用普通攻击打了张大头
    837 骆昊的魔法值恢复了10点
    838 张大头回击了骆昊
    839 ~~~骆昊奥特曼~~~
    840 生命值:101
    841 魔法值:20
    842 
    843 ~~~狄仁杰小怪兽~~~
    844 生命值:0
    845 ~~~白元芳小怪兽~~~
    846 生命值:0
    847 ~~~张大头小怪兽~~~
    848 生命值:14
    849 =======第63回合=======
    850 骆昊使用普通攻击必杀虐了张大头
    851 骆昊的魔法值恢复了2点.
    852 ~~~骆昊奥特曼~~~
    853 生命值:101
    854 魔法值:22
    855 
    856 ~~~狄仁杰小怪兽~~~
    857 生命值:0
    858 ~~~白元芳小怪兽~~~
    859 生命值:0
    860 ~~~张大头小怪兽~~~
    861 生命值:0
    862 
    863 ========战斗结束!========
    864 
    865 骆昊奥特曼胜利!
    View Code
  • 相关阅读:
    The Single Responsibility Principle
    MSComDlg.CommonDialogserver不能创建对象错误的解决
    Hadoop的HA机制(Zookeeper集群+Hadoop集群)配置记录
    linux怎样查看port被谁占用
    hadoop配置说明
    C#中的继承与多态还有接口
    MySQL DATE_FORMAT() 函数
    MySQL处理数据库和表的常用命令
    mysql 增加用户
    sql2008连接数据库问题
  • 原文地址:https://www.cnblogs.com/aszeno/p/11294316.html
一二三 - 开发者的网上家园