Bonjour,
ma question n'a rien à voir directement avec le C++, mais plutôt avec la
programmation objet, je pense cependant ne pas être trop HS et que je
trouverai mes réponses ici.
Voila, je compte faire un petit jeu (un Puissance4-like) en C++.
Je compte utiliser 2 classes principales:
- une classe Game qui contient tout ce qui est lié au jeu pur et dur
(matrice, fonction de vérification pour le gagnant...)
- une classe d'affichage qui serait ds un premier temps juste en console
pour le débogage et les tests, et dans un second temps plus élaboré, avec
une vraie interface graphique.
Le problème, c'est que j'ai du mal à établir la relation entre ces 2
classes, je ne sais pas laquelle utilise l'autre (en fait, j'ai l'impression
que ca dépend des fois), et donc par conséquent je ne sais pas si je dois
mettre une classe affichage comme membre de Game ou l'inverse.
J'aimerais donc que vous me donniez votre avis sur la façon de voir les
choses, et savoir d'il y a une pratique courante ou si la dépendance dépend
des cas.
Merci d'avance
Miguel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Loïc Joly
Miguel wrote:
Bonjour, ma question n'a rien à voir directement avec le C++, mais plutôt avec la programmation objet, je pense cependant ne pas être trop HS et que je trouverai mes réponses ici.
As-tu essayé dans fr.comp.objet ?
-- Loïc
Miguel wrote:
Bonjour,
ma question n'a rien à voir directement avec le C++, mais plutôt avec la
programmation objet, je pense cependant ne pas être trop HS et que je
trouverai mes réponses ici.
Bonjour, ma question n'a rien à voir directement avec le C++, mais plutôt avec la programmation objet, je pense cependant ne pas être trop HS et que je trouverai mes réponses ici.
As-tu essayé dans fr.comp.objet ?
-- Loïc
drkm
"Miguel" writes:
Je compte utiliser 2 classes principales: - une classe Game - une classe d'affichage
C'est un sujet tout désigné pour f.c.objet (qui y a d'ailleurs été traité plus d'une fois).
--drkm
"Miguel" <mickael.i@free.fr> writes:
Je compte utiliser 2 classes principales:
- une classe Game
- une classe d'affichage
C'est un sujet tout désigné pour f.c.objet (qui y a d'ailleurs été
traité plus d'une fois).
Je compte utiliser 2 classes principales: - une classe Game - une classe d'affichage
C'est un sujet tout désigné pour f.c.objet (qui y a d'ailleurs été traité plus d'une fois).
--drkm
Alexandre
bonjour,
Bonjour, ma question n'a rien à voir directement avec le C++, mais plutôt avec la programmation objet, je pense cependant ne pas être trop HS et que je trouverai mes réponses ici.
un peu HS quand même, mais bon, moi je ne lis jamais fr.(...).objet alors ;-)
Voila, je compte faire un petit jeu (un Puissance4-like) en C++. Je compte utiliser 2 classes principales: - une classe Game qui contient tout ce qui est lié au jeu pur et dur (matrice, fonction de vérification pour le gagnant...) - une classe d'affichage qui serait ds un premier temps juste en console pour le débogage et les tests, et dans un second temps plus élaboré, avec une vraie interface graphique.
je te conseille une classe abstraite pour l'affichage (ie une interface) ce qui t'éviterait des grosses modifs dans l'autre classe pour passer d'une console à une interface graph.
Le problème, c'est que j'ai du mal à établir la relation entre ces 2 classes, je ne sais pas laquelle utilise l'autre (en fait, j'ai l'impression que ca dépend des fois), et donc par conséquent je ne sais pas si je dois mettre une classe affichage comme membre de Game ou l'inverse. J'aimerais donc que vous me donniez votre avis sur la façon de voir les choses, et savoir d'il y a une pratique courante ou si la dépendance dépend des cas.
dans ce cas : la classe Game utilise la classe Affiche. Surtout si Affiche est une interface (donc en fait Game utilise un pointeur sur Affiche). C'est déjà une question de logique : passe de l'abstrait au concret, pas l'inverse. D'abord parce que ta classe Affiche pourrait être utilisée par d'autres objets, ensuite parce que c'est mieux ;-)
par ex : class Game { Affiche* pEcran; void AffichePion(){pEcran->AffichePion();} };
struct Affiche { virtual void AffichePion()=0; };
class AfficheVCL:public Affiche // exemple en utilisant la VCL sous C++ builder { TCanvas *Canvas; public: AfficheVCL(TCanvas* C):Canvas(C){} void AffichePion(){Canvas->Ellipse(10,10,25,30);} };
normalement, dans Game, tu n'utilises que les méthodes d'Affiche, et donc à part la ligne où tu fais l'initialisation de ton "écran", le reste du code ne dépend pas de ton interface (et donc de ta plate-forme entre autres).
bonjour,
Bonjour,
ma question n'a rien à voir directement avec le C++, mais plutôt avec la
programmation objet, je pense cependant ne pas être trop HS et que je
trouverai mes réponses ici.
un peu HS quand même, mais bon, moi je ne lis jamais fr.(...).objet alors
;-)
Voila, je compte faire un petit jeu (un Puissance4-like) en C++.
Je compte utiliser 2 classes principales:
- une classe Game qui contient tout ce qui est lié au jeu pur et dur
(matrice, fonction de vérification pour le gagnant...)
- une classe d'affichage qui serait ds un premier temps juste en console
pour le débogage et les tests, et dans un second temps plus élaboré, avec
une vraie interface graphique.
je te conseille une classe abstraite pour l'affichage (ie une interface) ce
qui t'éviterait des grosses modifs dans l'autre classe pour passer d'une
console à une interface graph.
Le problème, c'est que j'ai du mal à établir la relation entre ces 2
classes, je ne sais pas laquelle utilise l'autre (en fait, j'ai
l'impression que ca dépend des fois), et donc par conséquent je ne sais
pas si je dois mettre une classe affichage comme membre de Game ou
l'inverse.
J'aimerais donc que vous me donniez votre avis sur la façon de voir les
choses, et savoir d'il y a une pratique courante ou si la dépendance
dépend des cas.
dans ce cas : la classe Game utilise la classe Affiche. Surtout si Affiche
est une interface (donc en fait Game utilise un pointeur sur Affiche). C'est
déjà une question de logique : passe de l'abstrait au concret, pas
l'inverse. D'abord parce que ta classe Affiche pourrait être utilisée par
d'autres objets, ensuite parce que c'est mieux ;-)
par ex :
class Game
{
Affiche* pEcran;
void AffichePion(){pEcran->AffichePion();}
};
struct Affiche
{
virtual void AffichePion()=0;
};
class AfficheVCL:public Affiche // exemple en utilisant la VCL sous C++
builder
{
TCanvas *Canvas;
public:
AfficheVCL(TCanvas* C):Canvas(C){}
void AffichePion(){Canvas->Ellipse(10,10,25,30);}
};
normalement, dans Game, tu n'utilises que les méthodes d'Affiche, et donc à
part la ligne où tu fais l'initialisation de ton "écran", le reste du code
ne dépend pas de ton interface (et donc de ta plate-forme entre autres).
Bonjour, ma question n'a rien à voir directement avec le C++, mais plutôt avec la programmation objet, je pense cependant ne pas être trop HS et que je trouverai mes réponses ici.
un peu HS quand même, mais bon, moi je ne lis jamais fr.(...).objet alors ;-)
Voila, je compte faire un petit jeu (un Puissance4-like) en C++. Je compte utiliser 2 classes principales: - une classe Game qui contient tout ce qui est lié au jeu pur et dur (matrice, fonction de vérification pour le gagnant...) - une classe d'affichage qui serait ds un premier temps juste en console pour le débogage et les tests, et dans un second temps plus élaboré, avec une vraie interface graphique.
je te conseille une classe abstraite pour l'affichage (ie une interface) ce qui t'éviterait des grosses modifs dans l'autre classe pour passer d'une console à une interface graph.
Le problème, c'est que j'ai du mal à établir la relation entre ces 2 classes, je ne sais pas laquelle utilise l'autre (en fait, j'ai l'impression que ca dépend des fois), et donc par conséquent je ne sais pas si je dois mettre une classe affichage comme membre de Game ou l'inverse. J'aimerais donc que vous me donniez votre avis sur la façon de voir les choses, et savoir d'il y a une pratique courante ou si la dépendance dépend des cas.
dans ce cas : la classe Game utilise la classe Affiche. Surtout si Affiche est une interface (donc en fait Game utilise un pointeur sur Affiche). C'est déjà une question de logique : passe de l'abstrait au concret, pas l'inverse. D'abord parce que ta classe Affiche pourrait être utilisée par d'autres objets, ensuite parce que c'est mieux ;-)
par ex : class Game { Affiche* pEcran; void AffichePion(){pEcran->AffichePion();} };
struct Affiche { virtual void AffichePion()=0; };
class AfficheVCL:public Affiche // exemple en utilisant la VCL sous C++ builder { TCanvas *Canvas; public: AfficheVCL(TCanvas* C):Canvas(C){} void AffichePion(){Canvas->Ellipse(10,10,25,30);} };
normalement, dans Game, tu n'utilises que les méthodes d'Affiche, et donc à part la ligne où tu fais l'initialisation de ton "écran", le reste du code ne dépend pas de ton interface (et donc de ta plate-forme entre autres).
kanze
Alexandre wrote:
ma question n'a rien à voir directement avec le C++, mais plutôt avec la programmation objet, je pense cependant ne pas être trop HS et que je trouverai mes réponses ici.
un peu HS quand même, mais bon, moi je ne lis jamais fr.(...).objet alors ;-)
Voila, je compte faire un petit jeu (un Puissance4-like) en C++. Je compte utiliser 2 classes principales: - une classe Game qui contient tout ce qui est lié au jeu pur et dur (matrice, fonction de vérification pour le gagnant...) - une classe d'affichage qui serait ds un premier temps juste en console pour le débogage et les tests, et dans un second temps plus élaboré, avec une vraie interface graphique.
je te conseille une classe abstraite pour l'affichage (ie une interface) ce qui t'éviterait des grosses modifs dans l'autre classe pour passer d'une console à une interface graph.
En fait, il se pose une question classique, à laquelle la réponse classique est MVC. En gros, il définit un ensemble model-view dans lequel le modèle représente la position dans le jeu. Ensuite, il se sert du modèle listener pour que le modèle soit informé des changements dans le jeu.
Le problème, c'est que j'ai du mal à établir la relation entre ces 2 classes, je ne sais pas laquelle utilise l'autre (en fait, j'ai l'impression que ca dépend des fois), et donc par conséquent je ne sais pas si je dois mettre une classe affichage comme membre de Game ou l'inverse. J'aimerais donc que vous me donniez votre avis sur la façon de voir les choses, et savoir d'il y a une pratique courante ou si la dépendance dépend des cas.
dans ce cas : la classe Game utilise la classe Affiche.
Je ne crois pas. La classe Game supporte des listeners. Le modèle dans l'affichage (qui aurait besion de bien plus qu'une seule classe) s'inscrit comme listener. La classe Game ne connaît rien de l'affichage ; même pas qu'on l'affiche.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Alexandre wrote:
ma question n'a rien à voir directement avec le C++, mais
plutôt avec la programmation objet, je pense cependant ne
pas être trop HS et que je trouverai mes réponses ici.
un peu HS quand même, mais bon, moi je ne lis jamais
fr.(...).objet alors ;-)
Voila, je compte faire un petit jeu (un Puissance4-like) en
C++. Je compte utiliser 2 classes principales:
- une classe Game qui contient tout ce qui est lié au jeu
pur et dur (matrice, fonction de vérification pour le
gagnant...)
- une classe d'affichage qui serait ds un premier temps
juste en console pour le débogage et les tests, et dans un
second temps plus élaboré, avec une vraie interface
graphique.
je te conseille une classe abstraite pour l'affichage (ie une
interface) ce qui t'éviterait des grosses modifs dans l'autre
classe pour passer d'une console à une interface graph.
En fait, il se pose une question classique, à laquelle la
réponse classique est MVC. En gros, il définit un ensemble
model-view dans lequel le modèle représente la position dans le
jeu. Ensuite, il se sert du modèle listener pour que le modèle
soit informé des changements dans le jeu.
Le problème, c'est que j'ai du mal à établir la relation
entre ces 2 classes, je ne sais pas laquelle utilise l'autre
(en fait, j'ai l'impression que ca dépend des fois), et donc
par conséquent je ne sais pas si je dois mettre une classe
affichage comme membre de Game ou l'inverse.
J'aimerais donc que vous me donniez votre avis sur la façon
de voir les choses, et savoir d'il y a une pratique courante
ou si la dépendance dépend des cas.
dans ce cas : la classe Game utilise la classe Affiche.
Je ne crois pas. La classe Game supporte des listeners. Le
modèle dans l'affichage (qui aurait besion de bien plus qu'une
seule classe) s'inscrit comme listener. La classe Game ne
connaît rien de l'affichage ; même pas qu'on l'affiche.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
ma question n'a rien à voir directement avec le C++, mais plutôt avec la programmation objet, je pense cependant ne pas être trop HS et que je trouverai mes réponses ici.
un peu HS quand même, mais bon, moi je ne lis jamais fr.(...).objet alors ;-)
Voila, je compte faire un petit jeu (un Puissance4-like) en C++. Je compte utiliser 2 classes principales: - une classe Game qui contient tout ce qui est lié au jeu pur et dur (matrice, fonction de vérification pour le gagnant...) - une classe d'affichage qui serait ds un premier temps juste en console pour le débogage et les tests, et dans un second temps plus élaboré, avec une vraie interface graphique.
je te conseille une classe abstraite pour l'affichage (ie une interface) ce qui t'éviterait des grosses modifs dans l'autre classe pour passer d'une console à une interface graph.
En fait, il se pose une question classique, à laquelle la réponse classique est MVC. En gros, il définit un ensemble model-view dans lequel le modèle représente la position dans le jeu. Ensuite, il se sert du modèle listener pour que le modèle soit informé des changements dans le jeu.
Le problème, c'est que j'ai du mal à établir la relation entre ces 2 classes, je ne sais pas laquelle utilise l'autre (en fait, j'ai l'impression que ca dépend des fois), et donc par conséquent je ne sais pas si je dois mettre une classe affichage comme membre de Game ou l'inverse. J'aimerais donc que vous me donniez votre avis sur la façon de voir les choses, et savoir d'il y a une pratique courante ou si la dépendance dépend des cas.
dans ce cas : la classe Game utilise la classe Affiche.
Je ne crois pas. La classe Game supporte des listeners. Le modèle dans l'affichage (qui aurait besion de bien plus qu'une seule classe) s'inscrit comme listener. La classe Game ne connaît rien de l'affichage ; même pas qu'on l'affiche.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34