Constructeur?

Jean_Bob Messages postés 25 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 7 mai 2005 - 20 avril 2005 à 14:09
wildcat31 Messages postés 46 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 28 août 2005 - 21 avril 2005 à 11:03
Bonjour,

voila mon probleme :

J ai declare deux classes :

perso

terrain



Dans la classe perso, celle ci a comme attribut un terrain: "terrain monTerrain;"

Donc j ai definit son constructeur de la maniere suivante :

perso(terrain t){

monTerrain=t;

...

}



par ailleurs, dans ma classe terrain, j ai egalement un attribut de type perso : perso monPerso;

et j ai definit son constructeur de la maniere suivante :

terrain(perso p){

...

}

Mon probleme est que je ne sais pas comment construire mon attribut
monPerso... En effet, je veux que cet objet prenne pour terrain, le
terrain courant.

De ce fait dans mon constructeur terrain, j ai fait la chase suivante :

terrain(perso p){


monPerso = new perso(this);


}

Mais cela marche pas...

Que faut il que je fasse?



Par ailleurs j aimerais savoir comment vous procederiez si vous deviez
faire evoluer ce perso dans ce terrain. Ce terrain serait delimité par
des rectangle. Par ailleurs, le perso doit pouvoir se deplacer dans ce
rectangle mais uniquement dans ce rectangle.

Pour l instant, je suis parti sous l idee que le terrain est une
matrice de caracteres. Apres avoir initialisee cette matrice, je fais
correspondre a chaque caracteres un dessin que j aurais cree a l aide
de commande comme fillRect, fillOval...

Par exemple, pour la delimitation du terrain, je fais

matrice[0][0]='V';

Et dans la definition d une fonction draw, je parcours la matrice en
matchant les caracteres qu elle contient et je dessine en fonction...
Tout cela je fais dans un applet.

Pour l instant j essais tout simplement de genere le terrain ie un
rectangle... mais sans grand succes.... j obtients des tres horizontaux
et verticaux mais placés un peu partout sur mon apple...

Je vous serez reconnaissant si vous pouviez m apporte votre aide.

Merci d avance.



Vous pouvez aussi m ecrire a

jean_bob3@yahoo.fr.

4 réponses

wildcat31 Messages postés 46 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 28 août 2005 3
20 avril 2005 à 16:00
Bonjour,
D'après ce que j'ai compris à ton problème, je ferai comme ceci, prenant pour hypothèse que le terrain peut exister sans perso, mais qu'un perso doit être sur un terrain. En changeant l'attribut de Terrain 'monPerso' par une liste, on peut même imaginer plusieurs persos sur le même terrain.
Pour la suite de ton problème, je n'ai pas vraiment tout compris... Pour déplacer un perso, j'utiliserais simplement un système de coordonnées cartésiennes (ou ligne/colonne), avec des contraintes pour pas que le perso aille sur une partie inaccessible.
Pour finir, je te conseille fortement de mettre des majuscules à tes noms de classe, c'est la norme et c'est beaucoup plus facile à comprendre.

Classe Terrain :
public Terrain()
{
}
public addPerso(Perso p)
{
monPerso = p;
}

Classe Perso :
public Perso(Terrain t)
{
monTerrain = t;
t.addPerso(this);
}
0
Jean_Bob Messages postés 25 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 7 mai 2005
20 avril 2005 à 16:51
Salut,


Merci de t etre penche sur mon probleme.


En fait, mon perso a pour attribut un terrain et un tableau de points.


En realite mon perso est un serpent, il est donc composé de plusieurs points.


De plus, un point est une classe que j ai definit comme ayant une abscisse et une ordonnee.


En fait, je sais pas si tu as lu mon message en entier mais mon terrain
est caracterise par une matrice. Cette matrice a une longueur et une
largeur.

Ce que je considere en fait c est que l ensemble des points de mon
tableau ( pour mon perso ) represente eux meme l ensemble des couples de
la matrice de mon terrain.

Ainsi lorsque je voudrai qu une partie de mon perso se retrouve en tel
position sur le terrain, il me faudra appeler les coordonnees du point
caracterisant mon perso et lui faire faire des choses.

Tout ca pour te dire que ben ce tableau la pour que je veuille qu
il puisse avoir autant de point que la matrice de mon terrain en a et
bien il faut que je recupere la longueur et la largeur de ma matrice.
Ainsi la taille de mon tableau de points sera egale a ( longueur *
largeur ).

Mon probleme majeure reste le fait que je ne sais pas comment
representer cette matrice. En fait, je vois mon terrain comme etant une
matrice dont chaque case doit etre remplis par un graphics. Cela dit,
je ne sais pas comment le faire. ce que j aimerai c est avoir comme un
tableau excel, pouvoir acceder directement a n importe qu elle case et
pouvoir les remplir du graphics souhaité.


Merci de ta consideration.


A+
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
21 avril 2005 à 10:02
Je dois avouer ne pas tout à fait comprendre ton problème.
Si c'est une matrice que tu veux faire, il suffit de faire un tableau à deux dimensions :

int[][] test = new int[3][3]; // Carré de 3 * 3 cases

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
wildcat31 Messages postés 46 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 28 août 2005 3
21 avril 2005 à 11:03
Pour pouvoir représenter ton terrain comme tu le veux, tu n'as qu'à faire une matrice d'une nouvelle classe Case, qui aura un attribut Point (représentant ses coordonnées, et même si ces coordonnées sont déjà sous-entendu par les indices, mais ça pourra faciliter les traitements), et d'autres choses utiles comme savoir si un perso est sur cette case, etc. Et bien sur, tu peux y mettre en attribut un graphics.

Mais je suis d'accord avec Bidou, une simple matrice (de ce que tu veux) te permet d'avoir accès à n'importe quelle case...

Wildcat
0
Rejoignez-nous