|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 9 ![]() |
Bonjour!
Je suis actuellement en train de programmer un jeu d’échec en C++. La board est une classe de type ChessBoard contenant un tableau de pointeur sur Piece (la classe abstraite sur lequel les classes propres à chaque type de pièces vont hérités). Je cherche à faire un simple getter sur ce tableau privé. Je me heurt à un problème quand au type de la méthode de ce getter. voici ma classe ChessBoard: Code :
Code :
J'ai bien sur essayé de déclarer la fonction en Piece*** ChessBoard::getBoard() mais cela ne fonctionne pas Bien sur le type du getter dans le code n'est pas bon mais c'est pour vous donner une idée de la structure du code. Auriez vous une idée? Merci d'avance! |
||||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Étudiant Inscription : février 2012 Messages : 207 ![]() |
Bonjour
On ne peut pas retourner un tableau en C++. (Mais on peut retourner un objet qui encapsule un tableau ou std::vector) Dans ton cas, je pense qu'il y a une erreur de conception. Pourquoi veux tu faire un accesseur sur ce tableau ? Quelle opération veux-tu faire sur ce tableau ? Edit: On peut savoir pourquoi une personne m'a infligé un point négatif pour cette réponse ?! |
|
|
11
|
|
|
#3 |
![]() ![]() Cyrille Network programmer Inscription : juin 2010 Messages : 1 546 ![]() |
Bonsoir,
il serait mieux de faire un Piece* getPiece(int x, int y) { return board[x][y]; } pour récupérer la pièce d'une case. C'est "plus propre" que de retourner l'échiquier entier à l'extérieur |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 9 ![]() |
Merci pour vos réponses!
Mes pieces doivent vérifier la légalité de leur mouvement et la présence d'une autre pieces sur leur route. Il me faut pour cela itéré différents calcul sur la grille depuis les pieces. Je dois donc récupéré ce tableau. |
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() ![]() Inscription : décembre 2008 Messages : 490 ![]() |
Et pourquoi ne pas faire ce test à l'intérieur de ChessBoard ?
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Étudiant Inscription : février 2012 Messages : 207 ![]() |
Tu n'a pas besoin de récupérer le tableau.
La fonction proposée par Bousk qui permet de récupérer une pièce du tableau suffit. Tu peux aussi créer une fonction qui vérifie si le mouvement est valide (ou s'il y a des pièces intermédiaires entre deux cases) et l'implémenter dans la classe du plateau. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com