Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question héritage et redéfinition de fonction

    18 octobre 2020 à 5:20:48

    Bonjour, je suis en train de créer un jeu Magic The Gathering en Java (pour ceux qui ne connaissent pas, c'est un jeu de cartes à collectionner)

    Je fais face à un problème de structure. En effet, une carte de créature peut avoir une ou plusieurs capacités. Et c'est sur ces capacités que j'ai une question :

    Je suis parti du principe que je devais créer une classe Capacité avec une fonction utiliser(). Seulement, dans Mtg, certaines capacités nécessitent une cible. Je dois donc avoir des capacité avec une fonction utiliser(), et d'autres avec une fonction utiliser(Carte cible) à la place. J'ai donc penser à faire de l'héritage. Au départ, je voulais stocker toutes les capacité d'une carte dans une arraylist attribut.

    Finalement, je songe à créer deux arraylist Attributs, une pour les capacités ciblées et l'autre pour les non-ciblees. Est-ce une bonne pratique ? Si oui dois-je faire hériter ces deux types de capacité d'une même classe mère ?

    Une deuxième question, chaque capacité étant unique et ayant un effet différent (on trouvera rarement une capacité identique à plusieurs cartes), dois-je juste créer une classe générique et redéfinir le comportement de utiliser() à chaque fois que je l'instancie ? Si oui, comment obliger cette redéfinition ? En utilisant des interfaces ? 

    -
    Edité par 01001011 18 octobre 2020 à 5:26:50

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2020 à 7:25:16

      C'est bien de penser à des idées. Maintenant montre nous le code que tu as écrit.

      Au moins celui qui FERAIT QUELQUE CHOSE AVEC tes cartes., tes cibles, les capacités...

      -
      Edité par michelbillaud 18 octobre 2020 à 7:29:13

      • Partager sur Facebook
      • Partager sur Twitter

      Question héritage et redéfinition de fonction

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown