Si tu considère que ton personnage doit décider de son mouvement en fonction de son environnement, alors on peux imaginer une méthode du genre
void seDeplacer(Plateau plateau)
où le personnage fait toute l'opération de choisir un déplacement, et mettre à jour le plateau.
on peux aussi imaginer des variantes suivant comment tu compte articuler ta logique.
1 2
| Parcelle choixDeplacement(Parcelle origine)
Parcelle choixDeplacement(Plateau plateau, int x, int y) |
Où le personnage choisi l'endroit qu'il désire atteindre, mais le jeux décide par après si c'est autorisé ou pas.
Dans tous les cas, le Personnage n'a pas de référence au Plateau.
Maintenant tu pourrais avoir une logique sans paramètre où chaque élément a une référence vers la Parcelle où il se trouve et chaque Parcelle une référence vers le Plateau qui la contient. C'est un choix à faire. Ce second consomme plus de mémoire mais a l'avantage de devoir passer moins de paramètres aux méthodes de logique de jeu.
C'est en fait à toi de décider si tu préfère une logique où chaque élément connait sa position ou si tu préfère une logique où un élément est indépendant de sa position. C'est au final un choix entre une relation unidirectionnelle ou bidirectionelle.
Envoyé par
barcelonais59
De plus, pensez-vous que l'encapsulation dans Parcelle de la variable de type Object est une bonne idée ? Voila merci de votre attention et de votre aide !
Je ne comprends pas vraiment ce que tu entends par là, tu pourrais élaborer? Tout est objet (sauf les primitifs) donc je ne vois pas comment ce que tu stocke dans ta parcelle pourrait être autre chose que des Objects. Bien qu'il faudra typer de manière plus explicite que juste "Object" hein
Partager