psychospire
Messages postés42Date d'inscriptionmercredi 8 novembre 2006StatutMembreDernière intervention 9 décembre 2008
-
25 nov. 2006 à 17:16
psychospire
Messages postés42Date d'inscriptionmercredi 8 novembre 2006StatutMembreDernière intervention 9 décembre 2008
-
26 nov. 2006 à 02:30
Bonjour à tous, j'ai un léger problème pour mon projet d'informatique (bataille navale) que je n'arrive pas à résoudre. J'ai créé une classe "CBateau" dans laquelle je rentre les coordonnées de mes bateaux (coordonnées fonctions de la place du bateau sur la grille 10x10 (un élément pour le numéro de la ligne et un pour le numéro de la colonne)) dans des tableaux (Un tableau par bateau).
J'ai également une classe "CEnsemble" représentant la grille de la bataille navale (matrice 10x10). Le problème, c'est que j'aimerai à présent poser mes bateaux sur la grille (représentés par des 1 sur une grille de 0), et donc créer une méthode dans CEnsemble qui contiendrait des éléments de la classe "CBateaux".
En gros, j'aimerais faire quelquechose de la sorte pour enregistrer la coordonnée d'une case du bateau sur la grille :
void CEnsemble : : AjouterBateau(CBateau & UnBateau)
{
mGrille[ UnBateau[0] ] [ UnBateau[1] ] = 1;
}
(UnBateau[0] et UnBateau[1] forment la position d'une case du bateau sur la grille)
mais le logiciel me dit que je ne peut pas attribuer de [ ] à UnBateau, qui est pourtant un tableau...
Voila je sais que c'est un peu brouillon, mais si quelqu'un à compris à peu pres de quoi je voulais parler et aurais une solution à me proposer je suis preneur. Merci.
KICcodeur
Messages postés1Date d'inscriptiondimanche 7 mai 2006StatutMembreDernière intervention25 novembre 2006 25 nov. 2006 à 17:38
Salut,
il est important de bien comprendre ce qu'est un tableau. Quand UnBateau représente pour toi un tableau c'est en réalité un pointeur. Je m'explique: UnBateau[0] correspond a un élément du tableau tandis que UnBateau correspond a l'adresse qu premier élément. Je te conseil donc d'essayer : AjouterBateau(CBateau * UnBateau). Si je ne m'abuse sa devrait tourner comme sa ;-)
FRA
psychospire
Messages postés42Date d'inscriptionmercredi 8 novembre 2006StatutMembreDernière intervention 9 décembre 20081 25 nov. 2006 à 23:04
Salut, merci pour vos réponses.
KICcodeur, j'ai essayé en mettant * com tu le dit mais ca ne fonctionne pas, il me marque toujours : "error C2676: binary '[' : 'class CBateau' does not define this operator or a conversion to a type acceptable to the predefined operator".
Yann, pourrais tu me dire ce que UnBateau.getLigne() doit renvoyer exactement? De plus, je ne l'ai pas précisé dans mon premier post pour une question de clarté mais j'ai défini le tableau de mon bateau comme une matrice [N][2], c'est-à-dire que je doit entrer un numéro de ligne et un numéro de colonne pour afficher un élément du tableau. Ce que je veux se rapproche plus de ca :
mGrille[ UnBateau[0][0] ] [ UnBateau[0][1] ] = 1;
Est-ce la meme méthode que celle que tu as décrite?
Enfin, je ne comprend pas tres bien ce que tu veux dire par "surcharger l'opérateur" ni ce que c'est censé faire .
Pourrais-tu préciser ta pensée? Merci d'avance.
psychospire
Messages postés42Date d'inscriptionmercredi 8 novembre 2006StatutMembreDernière intervention 9 décembre 20081 26 nov. 2006 à 01:55
Ok je commence à comprendre ton idée, ca m'a l'air impec, à part que je ne connais pas du tout la syntaxe "unsigned", quel est sa fonction exactement??
Merci pour ta réponse en tout cas, ca va surement m'etre tres utile.
psychospire
Messages postés42Date d'inscriptionmercredi 8 novembre 2006StatutMembreDernière intervention 9 décembre 20081 26 nov. 2006 à 02:06
Problème à la ligne :
mGrille[UnBateau.getCoordLigne(i)][UnBateau.getCoordColonne(i)] = 1;
Il me dit que getCoordLigne et getCoordColonne ne sont pas des membres de CBateau...
psychospire
Messages postés42Date d'inscriptionmercredi 8 novembre 2006StatutMembreDernière intervention 9 décembre 20081 26 nov. 2006 à 02:30
Ah ouais en effet lol ca marche beaucoup mieux comme ca. Merci beaucoup pour ton aide, je vais enfin pouvoir continuer mon projet ouf! Bonne soirée à toi et merci encore.