Pokemon
Hola !
Je débute en python et on doit faire un combat de Pokemons.
Je suis bloqué sur une fonction, où j'aimerais que si le pokemon (a) utilise le full heal (défini par (c)) ,sa santé augmente de 20, mais je ne sais pas comment on pourrait le coder.
def full_heal (self): while running: self.vie=108 if a == c: self.vie "Carchacrok" a=a+20 self.vie = self.vie+20 return(self.vie) def ressucit(self): while running : if self.vie pokemon == 0: self.vie == "Ressucit" self.vie pokemon = self.max_vie return (self.max_vie)
2 réponses
Bonjour,
il y a des problèmes d'indentation dans ton code, et d'ailleurs, tu devrais afficher ton code complet
avec les balises de code, mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Visuellement, ça doit ressembler à ça:
for k in range(10): print(k)
Bonjour,
Il y a beaucoup de choses qui ne vont pas.
- Le code n'est a priori pas complet
- self n'a de sens que si tu es dans une classe (ça n'est pas le cas dans ton extrait de code)
- return n'est pas une fonction, donc il n'y a pas besoin d'utiliser de parenthèses.
- Cette syntaxe n'a pas de sens en python, et donc je t'invite à lire un cours de python avant de te lancer dans le code : self.vie "Carchacrok" a=a+20
- À quoi Carchacrok : au seul pokemon capable d'utiliser ce pouvoir ? Est-ce que Carchacrok est un type de pokemon (donc une classe au sens python) ou un pokemon unique (donc une instance au sens python)
Si je m'en tiens à l'énoncé :
J'aimerais que si le pokemon (a) utilise le full heal (défini par (c)) ,sa santé augmente de 20, mais je ne sais pas comment on pourrait le coder
... et en admettant que Carchacrok soit un type de pokemon, le seul type à pouvoir lancer un full_heal, le code pourrait ressembler à :
class Pokemon: def __init__(self, life: int, life_max: int): self.life_max = life_max self.life = life def __str__(self) -> str: return f"{self.__class__.__name__}<life: {self.life}/{self.life_max}>" class Carchacrok(Pokemon): def full_heal(self): self.life_max += 20 self.life = self.life_max carchacrok = Carchacrok(20, 100) print(carchacrok) carchacrok.full_heal() print(carchacrok)
Résultat :
Carchacrok<life: 20/100>
Carchacrok<life: 120/120>
Bonne chance