前言
都说毁掉一个男生很简单,跟他说**“世界上没有奥特曼。”**
据说这一句话如同五雷轰顶。 完整代码点这哈
一直以来,我都以为这只是一个玩笑的梗。但是无数事实证明,奥特曼真的很能“打”,堪称是男孩心中的白月光。
**奥特曼对于一个男孩子有多重要?**就看最近奥特曼发生的事儿—
《迪迦奥特曼》遭全网下架引热议!虽然最近部分上架了,但是大部分视频都是删减过后的!
不管是魔性表情包,还是五花八门的二次恶搞视频,亦或是奇奇怪怪的热搜话题,都不乏有奥特曼的影子。
比如说鬼畜的表情包,据说没有任何男人,可以拒绝奥特曼表情包——来自迪迦的肯定,胜过千言万语。
微博上还一度出现一个热搜话题**#别给男生发任何奥特曼表情包#**。
今天的话小编写的代码也跟奥特曼有关的啦——那就愉快的开始今天的奥特曼之旅吧!
正文
你相信光吗?
(1)教大家写一款奥特曼文字游戏大战。
附代码:
from abc import ABCMeta, abstractmethod
from random import randint, randrange
class Fighter(metaclass=ABCMeta):
"""战斗着"""
__slots__ = ('_name', '_hp')
def __init__(self, name, hp):
"""初始化"""
self._name = name
self._hp = hp
@property
def name(self):
return self._name
@property
def hp(self):
return self._hp
@hp.setter
def hp(self, hp):
self._hp = hp if hp >= 0 else 0
@property
def alive(self):
return self._hp
@abstractmethod
def attack(self, other):
"""攻击
:param other:被攻击对象
"""
pass
class Ultraman(Fighter):
"""奥特曼"""
__slots__ = ('_name', '_hp', '_mp')
def __init__(self, name, hp, mp):
super().__init__(name, hp)
self._mp = mp
def attack(self, other):
other.hp -= randint(15, 25)
def huge_attack(self, other):
if self._mp >= 50:
self._mp -= 50
injury = other.hp * 3 // 4
injury = injury if injury >= 50 else 50
other.hp -= injury
return True
else:
self.attack(other)
return False
def magic_attack(self, others):
if self._mp >= 20:
self._mp -= 20
for temp in others:
if temp.alive > 0:
temp.hp -= randint(10, 15)
return True
else:
return False
def resume(self):
"""回复魔法值"""
incr_point = randint(1, 10)
self._mp += incr_point
return incr_point
def __str__(self):
return '---%s奥特曼---\n生命值:%d\n魔法值: %d\n' % (self._name, self._hp, self._mp)
class Monster(Fighter):
"""小怪兽"""
__slots__ = ('_name', '_hp')
def attack(self, other):
other.hp -= randint(10, 20)
def __str__(self):
return '---%s小怪兽---\n生命值:%d\n' % (self._name, self._hp)
def is_any_alive(monsters):
"""判断有没有小怪兽是活着的"""
for monster in monsters:
if monster.alive > 0:
return True
else:
return False
def select_alive_one(monsters):
"""选中一只活着的小怪兽"""
monsters_len = len(monsters)
while True:
index = randrange(monsters_len)
monster = monsters[index]
if monster.alive > 0:
return monster
def display_info(ultreman, monsters):
"""显示小怪兽和奥特曼的信息"""
print(ultreman)
for monster in monsters:
print(monster, end='')
def main():
u = Ultraman('迪迦奥特曼', 1000, 120)
m1 = Monster('哥斯拉', 250)
m2 = Monster('贝利亚', 400)
m3 = Monster('杰顿', 300)
ms = [m1, m2, m3]
fight_round = 1
while u.alive > 0 and is_any_alive(ms):
print("===========第%02d回合==========" % fight_round)
m = select_alive_one(ms) # 选中一只怪兽
skill = randint(1, 10) # 通过随机数选择使用哪种技能
if skill <= 6: # %60的概率普通攻击
print('%s 使用了普通攻击打了 %s' % (u.name, m.name))
u.attack(m)
elif skill <= 9: # 30%的几率使用魔法攻击,可能因为魔法不足而失败
if u.magic_attack(ms):
print('%s 使用了魔法攻击' % u.name)
else:
print('%s 使用了魔法失败' % u.name)
else: # 10%的几率使用终极必杀
if u.huge_attack(m):
print('%s 使用终极必杀技虐了 %s' % (u.name, m.name))
else:
print('%s 使用了普通攻击打死了 %s' % (u.name, m.name))
print('%s 的魔法值恢复了 %d' % (u.name, u.resume()))
if m.alive: # 如果选中小怪兽没死就回击奥特曼
print('%s 回击了 %s' % (m.name, u.name))
m.attack(u)
display_info(u, ms)
fight_round += 1
print('\n=======战斗结束=======\n')
if u.alive:
print('%s 奥特曼胜利!' % u.name)
else:
print('小怪兽胜利!')
效果如下:
(2)教大家写一款小怪兽打奥特曼的小游戏。
附代码:
class Monster(object):
def __init__(self,name,energy):
self.name = name
self.energy = energy
if self.energy>=100:
print(self.name+"满血战斗")
else:
print(self.name+"目前有"+str(self.energy)+"的血量")
print("警告:"+self.name+"需要补血")
def eat(self,energy):
if self.energy<=100:
for i in range(10,100,10):
self.energy += energy #执行吃的语句,吃就+10,如果>100,就不吃了
print("正在补血.....")
print(self.name+"现在有"+str(self.energy)+"的血量")
class Ultraman(object):
def __init__(self,name,alk):
self.name = name
self.alk = alk
return
def beat(self,other,c):
other.energy =other.energy-c*self.alk
if other.energy<=0:
print(self.name+"攻击"+other.name+str(c)+"次")
print("完了"+self.name+"成功打死"+other.name)
else:
print(self.name+"攻击"+other.name+str(c)+"次")
print("很遗憾"+self.name+"没有打死"+other.name)
M1=Monster('雷欧奥特曼',99)
M1.eat(10)
U1=Ultraman('小怪兽',999)
U1.beat(M1,1)
效果如下:
噗~奥特曼打不赢小怪兽貌似这很少哈,不过电视里面都是不管怎样艰苦,奥特曼最终都会打赢小怪兽滴!
(3)最后教大家写一个简单的奥特曼卡通可可爱爱的绘图。
效果展示:是不是很可爱,变成了人畜无害的Q版卡通画
是想把怪兽萌死吗?哈哈哈~
小结
👾 🤖️ 👾 好啦!奥特曼打怪兽的小游戏就到这里,你的童年有奥特曼嘛?哈哈哈~【暴露年龄小技巧.jpg】文章三款源码都是免费分享滴~
你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章哦