最近写了个python程序,可以上传到专门平台去宠物对战,但是属性总和
不能超过3000,否则上传平台时系统就会让你不通过,如何让属性超过3000并通过审核
呢?
import random
# 定义Dog类
class Dog():
def __init__(self, n, t, m, p, d, s):
self.name = n
self.type = t
self.max_hp = m#最大血量
self.power = p#攻击力
self.defense = d#防御力
self.speed = s#速度
self.hp = self.max_hp#血量
# 攻击技能
def attack(self):
damage = self.power
return damage
# 治疗技能
def heal(self):
hp_up = self.max_hp * 0.6
self.hp = self.hp + hp_up
if self.hp >= self.max_hp:
self.hp = self.max_hp
# 吸血技能
def leech(self):
damage = self.power * 0.6
hp_up = damage * 0.5
self.hp = self.hp + hp_up
if self.hp >= self.max_hp:
self.hp = self.max_hp
return damage
# 控制技能
def control(self):
lis1 = [1, 0]
x = random.choice(lis1)
if x == 1:
return True
else:
return False
# 攻击强化技能
def attack_buff(self):
self.power = self.power * 1.05
def defense_buff(self):
self.defense = self.defense * 1.05
def give_point(self):
jn = {'attack': 0, 'heal': 0, 'leech': 0, 'control': 0, 'attack_buff': 0,
'defense_buff': 0}
rate = self.hp / self.max_hp
jn['attack'] = 100 * rate+20
if rate <0.8 and rate > 0.65:
jn['attack_buff'] = 100
if rate < 0.3:
jn['heal'] = 100
return jn
def decision(self):
jn = self.give_point()
max_point = 0
max_jn = ''
for k in jn:
if jn[k] > max_point:
max_point = jn[k]
max_jn = k
return max_jn
my_monster = Dog('xxx', 0, 100, 2700, 100, 100)
1.想弄个随机数,二分之一的可能性超过3000,不能通过审核,二分之一可能性等于3000,
能通过审核。多试几次就能通过审核。但是在对战之前还会检测一次,如果大于3000,就把你
本来通过审核的程序改成没通过审核了。
2.添加技能并调用,虽然能通过,但是没用。修改技能也是
你对战前要审核?那可不可以在对战中进行增加?
你为什么非要纠结属性呢
既然所有方法是你自己定义的,那属性高不高又能怎么样呢
你攻击的时候别写damage = self.power
改成damage = self.power * 100
不就直接把对方秒了吗
-=-=-=-=-
还有,你把self.hp定义成属性,而不要定义字段
然后使用set方法去修改它的值
在set方法里,你不要给它赋值,而get方法里取值永远取血量最大值,这不就锁血了吗
属性无所谓呀,你加个技能 直接秒杀不就好了