Bonjour,
J'ai un projet de C++ pour cette ann�e qui a pour but de "g�rer" le d�placement d'une population de fourmis (Ouais assez bizarre comme projet)
(Il y a des r�gles de d�placement pour les fourmis)
Pour cela on a impl�ment� les classes suivantes:
Etat (les �tats des cases du plateau : afin d'avoir leurs direction et de savoir si elles sont occup�es ou pas)
Plateau (Il contient la hauteur et la largeur du quadrillage, ainsi qu'un double pointeur de type Etat: Etat** tab)
Fourmi (C'est ici o� j'ai le probl�me, on nous demande d'ins�rer la fourni dans la case milieu du plateau via un constructeur qui prends en param�tre la r�f�rence du plateau)
Fourmili�re (Je suis pas encore arriv� � cette partie donc on en aura pas besoin)
Je ne vais pas exposer la totalit� de mes codes par peur que d'autres �l�ves de la m�me �cole puissent les r�utiliser pour leurs faveurs. (Sachant que c'est un projet individuel et il y a des v�rifications pour les cheaters).
Etat.h
Plateau.h
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #pragma once #include <iostream> using namespace std; class Etat { private: bool occupe; int direction; public: Etat(); Etat(bool o, int d); bool get_o(); int get_d(); void set_o(bool o); void set_d(int d); void modif_d(); void AfficherEtat(); };
Fourmi.h
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #pragma once #include "Etat.h" #include <iostream> using namespace std; class Plateau { private: Etat** tab; int hauteur, largeur; public: Plateau(); Plateau(int h, int l); Plateau(Plateau const& CopiePlateau); ~Plateau(); void affiche(); Etat& get_case(int i, int j); int get_h(); int get_l(); Plateau operator++ (int); };
Fourmi.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 #pragma once #include "Plateau.h" class Fourmi { private: int i,j; int d; public: Fourmi(Plateau& plat); int get_d(); };
Voil� le probl�me est dans le Fourmi.cpp, j'ai pas su comment "ins�rer' une fourmi dans le plateau.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "Fourmi.h" #include "Plateau.h" #include "Etat.h" #pragma once int Fourmi::get_d() { return d; } Fourmi::Fourmi( Plateau& plat ) { i = (plat.get_h()+1)/2; j = (plat.get_l()+1)/2; plat[i][j] = new Fourmi; // <----- Problème }
Si vous avez besoin des autres .cpp (Etat et Plateau) je vous les envoie en MP, parce que j'ai vraiment peur qu'on me colle un cheater comme �a
Voici l'explication des mouvements des fourmi:
TROU : case centrale du quadrillage.
Changer sa direction = faisant tourner de 90 degr�s dans le sens des aiguilles d�une montre.
La direction est bien dans classe "�tat" (les cases) et c'est pas la fourmi qui la porte. (On suit un cahier de charge pour tout �a)
La premi�re fourmi sort du trou, trouve une case vide et donc s�installe :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
La seconde fourmi sort du trou, trouve une case occup�e donc en change sa direction :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ↑ ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
Elle se d�place alors selon cette direction et rencontre une case vide donc y reste :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ↑ ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
La troisi�me fourmi sort du trou, trouve une case occup�e donc en change sa direction :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← → ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
Elle se d�place alors selon cette direction et rencontre une case vide donc y reste :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← → ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
La quatri�me fourmi sort du trou, trouve une case occup�e donc en change sa direction :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ↓ ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
Elle se d�place alors selon cette direction et rencontre une case vide donc y reste :
← ← ← ← ← ← ←
← ← ← ← ← ← ←
← ← ← ↓ ← ← ←
← ← ← ← ← ← ←
← ← ← ← ← ← ←
Et ainsi de suite...
Ceci est juste pour vous donner une id�e sur le fonctionnement du programme, mon probl�me c'est l'insertion d'une fourmi dans le plateau (je vous invite � voir mon code en haut)
Je vous remercie.
Partager