Include player, map, ball dans simulation.h

Include player, map, ball dans simulation.h

by Justin Levenishti -
Number of replies: 1

Bonjour,

je voulais savoir s'il est permis de faire include player.h, map.h et ball.h dans simulation.h au lieu de le faire dans simulation.cc puisque notre classe Simulation possède des méthodes qui prennent des arguments de type Player, Ball ...

En effet, si on retire les include  mentionnés ci-dessus dans simulation.h et on les déplace dans simulation.cc, le programme ne compile plus. 

Merci d'avance


In reply to Justin Levenishti

Re: Include player, map, ball dans simulation.h

by Ronan Boulic -

Votre problème vient du fait que, probablement, vous définissez une classe Simulation qui elle-même contient des méthodes avec des paramètres Player, Ball, Map.

Dans ce cas vous devez effectivement inclure les interfaces des modules Player, Ball et Map dont vous utilisez les types dans la déclaration de la classe Simulation.

----------------------

CELA DIT, pour les autres personnes qui n'ont pas créé de classe Simulation, il n'est pas nécessaire de montrer autant de chose dans l'interface du module simulation.

RENDU1:

L'interface simulation.h est destinée au module principal où se trouve la fonction main(). Or ce module principal n'a pas besoin de connaitre des fonctions travaillant avec des Player, Ball ou Map.

La seule chose qu'on demande à main() de faire pour le rendu1 c'est de transmettre le nom du fichier à ouvrir. Pas besoin des types Player, Ball et Map pour cela. Le prototype d'une fonction suffit, par exemple:

      void simulation_open( string filename);

RENDUS 2et 3: Ensuite, pour les rendus 2 et 3, le module gui va transmettre des commandes comme start, stop, step ou récupérer des informations pour faire le dessin:

. pour start, stop,step il n'y a pas de dépendance vis à vis des types Player, ball, map

. pour le dessin, des fonctions du module simulation devront centraliser l'envoi des informations générale (dimensions du terrain, des rayons et nb d'entité) ainsi que des positions des centres des cercle pour les joueurs et ball. idem pour les obstacles, la seule chose qu'il faudra transmettre c'est les indices de ligne et colonne des cases de grille à dessiner. Ces informations sont des types de base ou des types concret venant du module tools (Point, Cercle...).

il n'y a pas de dépendance vis à vis des types Player, ball, map parce que les fonctions viennent du module simulation.

Je vais mettre à jour les dessins de l'architecture du projet pour faire ressortir que le module tools est un module utilitaire générqiue qui peut aussi être exploité par le module gui.