Preguntas del examen del capítulo 5 del examen en línea de Python

Liga de Leyendas

[Descripción del problema]
League of Legends es un popular juego competitivo multijugador en línea. Ahora necesitas tu ayuda para implementar una clase de héroe (que lleva el nombre de Legend).

Cada héroe debe tener su propio nombre (nombre), HP (HP) poder de ataque (ataque). Estas tres variables de objeto directamente accesibles se asignan durante la inicialización.

Cuando el héroe recibe daño, llama a la función de cálculo de daño (obtén _damage, la función debe tener un parámetro que indique el valor del daño recibido). Una vez calculado el daño, si el volumen de sangre es superior a 0, el nombre del héroe + " ¡Sigue luchando! ", de lo contrario, lucha Muere, muestra el nombre del héroe +" morir por la gloria ";

Ahora, debido a que el tiempo de juego es demasiado largo, se configura un mecanismo para reescribir el operador <para que dos objetos héroe puedan compararse directamente (ob1 <ob2 se compara así, y devuelve el valor booleano del resultado de la comparación del volumen de sangre de los dos objetos héroe.

El proceso de juego simplificado es: inicializar dos héroes y atacarse entre sí una vez, y luego usar el mecanismo mencionado anteriormente para determinar el ganador. Dado el código de proceso, solo es necesario implementar la clase Legend.

[Formulario de entrada]

Dos líneas, los atributos correspondientes de cada héroe.

[Formulario de salida]

El proceso de batalla de dos líneas y el resultado final del juego.

[Entrada de muestra]

somos 1000 500

timoo 600 700

[Exportación de muestra]
¡
Garen sigue luchando! ¡ Timoo sigue luchando! ¡
Garen gana!

Realmente no puedo soportarlo.
En la función get_damage, debes recordar que se imprime en lugar de devolver.

class Legend:
    def __init__(self,name,HP,attack):
        self.name=name
        self.HP=HP
        self.attack=attack
    def get_damage(self,attack):
        self.HP-=attack
        if self.HP>0:
            print(self.name+' keep fighting')
        else:
            print(self.name+' die for glory')
    def __lt__(self,other):
        return self.HP<other.HP

# 读取红色方和蓝色方两个英雄的信息文件
red_s=input().split()
bule_s=input().split()
# 初始化两个英雄
red=Legend(red_s[0],int(red_s[1]),int(red_s[2]))
bule=Legend(bule_s[0],int(bule_s[1]),int(bule_s[2]))
# 两个英雄各自攻击一次
red.get_damage(bule.attack)
bule.get_damage(red.attack)
# 最后的较量
if red<bule:
    print(bule.name+' win!')
else:
    print(red.name+' win!')

Supongo que te gusta

Origin blog.csdn.net/qq_53029299/article/details/115139316
Recomendado
Clasificación