Je travaille actuellement sur un projet indépendant d'écriture d'un jeu d'échecs. Le problème auquel je suis actuellement confronté est que j'ai une méthode qui renvoie un arraylist de type Move (explicite) qui est appelé lors de la détermination de tous les mouvements légaux. Bien que cela fonctionne bien, j'ai introduit une classe appelée Castle, qui étend Move (je l'ai fait parce que contrairement à un mouvement normal, roque affecte 4 carrés et pas seulement 2). Je voudrais que la méthode getMoves() soit autonome, ou soit capable de retourner tous les mouvements valides y compris les objets de type Move et son château enfant. Le problème est si j'inclue une déclaration qui ajoute des mouvements de ronronnement valides à la méthode getMoves (qui retourne une liste de type de type move). Je peux soit a) ajouter l'arraylist comme un déplacement de type, dans lequel les informations sont perdues , ou b.) un château de type, qui change l'arraylist de retour à un type de tout château et casse évidemment la méthode.Java ArrayLists: Ajout de la classe parent et de la sous-classe au même arraylist, solutions
Existe-t-il une manière gracieuse d'accomplir ceci? Je cherche des façons de résoudre ce problème sans réécrire la classe de déplacement tout en gardant la méthode getMoves autonome.
Je ne peux pas dire ce que vous entendez par "ajouter l'arraylist comme un mouvement de type". Pouvez-vous le démontrer avec du code? – immibis
Au lieu de votre classe Castle qui étend la classe Move, pourquoi ne pas créer une propriété dans la classe Move de type "Castle"? Exemple de code: 'class Déplacer { privé Castle castle; // propriété castle // getter setter ci-dessous } ' –