projet C++

projet C++ - C++ - Programmation

Marsh Posté le 09-02-2005 à 13:55:38    

Salut,
 
J'ai un projet C ++ a realiser et j'aimerais que vous me donniez votre avis sur la question.
 
Sujet : Ce projet simule le comportement d'une colonie de fourmis.
Les fourmis se deplacent aleatoirement a la surface d'un monde qui a la forme d'un tore (qu'on assimilera a un rectangle pour le programme).
Chaque fourmis arrivant en haut du rectangle se retrouvera donc en bas et pareillement pour la gauche et droite.
 
Des morceaux de nourriture seront aleatoirement repartis a la surface du monde.
Les fourmis obeissent aux lois suivantes : Se deplacer au hasard, prendre la nourriture s'il y en a devant soi et qu'on est a vide, Deposer la nourriture s'il y en a devant soi.
 
La taille du monde, le nombre de fourmis, de nourriture seront parametrables, ainsi que le nombre de cycle (la duree de simulation).
 
Probleme :
 
Je souhaitais utiliser un tableau correspondant au monde. Mais je ne sais pas comment faire pour l'utiliser dans plusieurs classes. J'ai fait 3 classes : CMonde (pour la classe mere), CFourmi (classe fille de CMonde) et classe CBouffe (classe fille de CFourmi)..
 
 
Si vous avez d'autres solutions a me proposer n'hesitez pas  
 
Merci
 

Reply

Marsh Posté le 09-02-2005 à 13:55:38   

Reply

Marsh Posté le 09-02-2005 à 13:58:22    

Je vois pas pour quelle raison obscure une fourmi hériterait du monde et la bouffe de la fourmi...[:urd]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-02-2005 à 14:00:10    

je sais pas je me demande encore...

Reply

Marsh Posté le 09-02-2005 à 14:01:23    

aïe.

Reply

Marsh Posté le 09-02-2005 à 14:05:07    

L'héritage est à utiliser pour exprimer la relation "est une sorte de". Si tes fourmis sont une sorte de monde, et la bouffe une sorte de fourmi, alors ça va. Sinon y'a pas lieu d'utiliser l'héritage.
Ton tableau doit être encapsulé dans CMonde, les fourmis et la bouffe n'ont aucune raison d'avoir accès à ce tableau. C'est le monde qui gère tout (telle fourmi à tel endroit, etc...)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 09-02-2005 à 14:09:14    

HelloWorld a écrit :

C'est le monde qui gère tout (telle fourmi à tel endroit, etc...)


 
Une vision très "dame nature" [:joce]

Reply

Marsh Posté le 09-02-2005 à 14:10:39    

donc mon tableau appartient a CMonde. CBouffe et CFourmis ne contiendront que leurs nombres, leurs id et de meme pour la bouffe.
 
Comment alors utiliser les fonctions des classes cbouffe et coufourmis dans le monde ?

Reply

Marsh Posté le 09-02-2005 à 14:46:45    

Il te manque les concepts de base en POO avant de pouvoir commencer ce projet... évite de ta lancer tête baissée dans ton projet (fort intéressant) et prends le temps de maîtriser la philosophie objet
 
http://www.plb.fr/ccm/poo/poointro.php
http://www.commentcamarche.net/poo/poointro.php3


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 09-02-2005 à 15:06:10    

L'héritage ou spécialisation, se traduit par "est un" en langage naturel.
 
Un morceau de bouffe est une fourmi qui est un monde. [:totoz]


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 09-02-2005 à 15:30:48    

moi je ferais plustôt des classe Fourmi et Bouffe indépendantes, et une classe Monde qui maintiens une collection de Fourmi et une collection de Bouffe.
 
ou alors la classe Monde décrit les démentions et propriétées du rectangle, et une classe Simulateur qui maintiens un Monde, et une collection de Fourmi et de Bouffe.

Reply

Marsh Posté le 09-02-2005 à 15:30:48   

Reply

Marsh Posté le 09-02-2005 à 15:34:25    

sachant que les fourmis mangent des fourmis, les fourmis sont potentiellement de la bouffe [:dawa]

Reply

Marsh Posté le 09-02-2005 à 16:17:46    

bjone => quand tu dis que la classe Monde qui maintiens une collection de fourmi et de bouffe, je vois pas bien ce que tu veux dire par la

Reply

Marsh Posté le 09-02-2005 à 18:06:23    

avec:
 
Bouffe
{
}
 
Fourmi
{
}
 
Soit tu as:
 
Monde
{
   collection<Bouffe> Bouffables;
   collection<Fourmi> Fourmis;
 
   avance_la_simulation_d_un_pas()
}
 
ou alors en plus éclaté:
 
Monde
{
   int Haut/largeur;
   // pour plus tard: collection<Obstacle> Obstacles;
}
 
Simulateur
{
   Monde *Mde; // ou equivalent
   collection<Bouffe> Bouffables;
   collection<Fourmi> Fourmis;
 
   avance_la_simulation_d_un_pas()
}

Reply

Marsh Posté le 09-02-2005 à 18:41:49    

ok mais je ne vois pas a quoi correspondent ces collections : collection<Bouffe> Bouffables ??

Reply

Marsh Posté le 09-02-2005 à 18:45:05    

Citation :

Des morceaux de nourriture seront aleatoirement repartis a la surface du monde.

Reply

Marsh Posté le 09-02-2005 à 18:56:32    

d'accord mais quelle est le type de : "collection<bouffe> bouffables;" C'est un vecteur avec l'ensemble des positions pour chaque unite de bouffe ??

Reply

Marsh Posté le 09-02-2005 à 19:05:17    

ha bah ça c'est toi qui voit, je vais pas tout te faire :D

Reply

Marsh Posté le 12-02-2005 à 00:40:41    

oh ca me rapel un Tp en Java c t WorldBot.
heritage et surcharge et c bon!
 
ps:constructif mon post hein?!

Reply

Marsh Posté le 12-02-2005 à 11:08:40    

Il y a eu un numéro de Login parlant de ça avec code source et tout, j'essai de retrouver le numéro et je te dis quoi :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed