Pokemon
Fermé
LLeo
-
Modifié le 31 janv. 2023 à 16:08
mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 novembre 2024 - 31 janv. 2023 à 16:19
mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 novembre 2024 - 31 janv. 2023 à 16:19
2 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
30 janv. 2023 à 17:58
30 janv. 2023 à 17:58
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)
mamiemando
Messages postés
33357
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
14 novembre 2024
7 799
31 janv. 2023 à 16:19
31 janv. 2023 à 16:19
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