PROJET WAR GAME problem concernant une creation de liste dunites

shomron Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 30 juin 2010 - 26 déc. 2004 à 21:44
cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 - 27 déc. 2004 à 14:02
bonsoir a tous

jai vriament un super problem si vous pouvez maider ca serai genial enfait mon projet est de creer un war game
donc aucun problem pour moi lol
mais mon problem perssiste lorsque jesseille de creer des unite
donc pour le joueur 1 la creation aucun problem mais des que je cree la liste dunite pour le joueur 2 la tout va mal car enfait la liste du joueur 1 change en meme temps alors moi je ne comprend plus rien lol
donc le code est le suivant

/////////////CLASS /////////
public class Joueur
{

public Joueur(String Identifiant) {
this.Identifiant=Identifiant;
}

public String Identifiant;
public ListeUnite JoueurListeUnite;
public ListeBatiment JoueurListeBatiment;

}

////////////////////////CLASS/////////////////////

public class ListeUnite
{

public ListeUnite(Unite unite,ListeUnite suivant) {
this.unite = unite;
this.suivant = suivant;
}

public static ListeUnite ChercherUniteParIndexCase(int indexcase,ListeUnite listeunite){
if(listeunite==null) return null;
if(listeunite.unite.GetIndexBoutonCase()==indexcase) return listeunite;
ListeUnite l=ChercherUniteParIndexCase(indexcase,listeunite.suivant);
return listeunite;

}

public static ListeUnite EffacerUnite(Unite unite,ListeUnite listeunite){
if(listeunite==null) return null;
if(listeunite.unite.GetIndexBoutonCase()==unite.GetIndexBoutonCase()) return listeunite.suivant;
ListeUnite l=EffacerUnite(unite,listeunite.suivant);
listeunite.suivant=l;
return listeunite;
}

public static void AfficherListeUnite(ListeUnite listeunite){
if(listeunite==null) System.out.println(""+listeunite)
;
else {
AfficherListeUnite(listeunite.suivant);
System.out.println(""+listeunite.unite.GetIdentifantImage()+" "+listeunite.unite.GetIndexBoutonCase());
}

}

public Unite GetUnite() {return unite;}
public void SetUnite(Unite unite) {this.unite=unite;}

private Unite unite;
private ListeUnite suivant;

}
//////// CLASS ////////LES 2 DANS UN MEME FICHIER /////////////////////////////////////////////

if (BoutonImage[IndexDetectionBoutonImage].GetUnite()!=null)
{

joueur1.JoueurListeUnite=new ListeUnite(BoutonImage[IndexDetectionBoutonImage].GetUnite(),
ListeUniteSuivanteIntermediaire1);

boutons[i].setIcon(new ImageIcon(joueur1.JoueurListeUnite
.GetUnite().GetLienImage()));
joueur1.JoueurListeUnite.GetUnite().SetIndexBoutonCase(i);
ListeUniteSuivanteIntermediaire1 = joueur1.
JoueurListeUnite;

}

if (BoutonImage[IndexDetectionBoutonImage].GetUnite()!=null)
{

joueur2.JoueurListeUnite=new ListeUnite(BoutonImage[IndexDetectionBoutonImage].GetUnite(),
ListeUniteSuivanteIntermediaire2);

//ListeUnite.AfficherListeUnite(joueur1.JoueurListeUnite);
boutons[i].setIcon(new ImageIcon(joueur2.JoueurListeUnite
.GetUnite().GetLienImage()));
//ListeUnite.AfficherListeUnite(joueur1.JoueurListeUnite);

ListeUnite.AfficherListeUnite(joueur1.JoueurListeUnite);
joueur2.JoueurListeUnite.GetUnite().SetIndexBoutonCase(i); //*********
ListeUnite.AfficherListeUnite(joueur1.JoueurListeUnite);

ListeUniteSuivanteIntermediaire2 = joueur2.
JoueurListeUnite;

//ListeUnite.AfficherListeUnite(joueur1.JoueurListeUnite);
}

//////////////////////////////////////////////////////////////////////////

la juste au dessus jai mis des etoile pour vous montrer ou est le problem mais jarrive pas du tout a comprendre ce qui ne va pas
et pour vous dire jai meme esseiller de creer 2 class joueur
2 class liste des unite
mais rien ne change donc ca vien surement de la
de la class unite mais je ne vois pas c equi cloche

jesper que vous pourez maider tres vite bonne vacances a tout

3 réponses

cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 1
27 déc. 2004 à 01:33
Salut,
cette ligne me parait suspecte !

joueur2.JoueurListeUnite.GetUnite().SetIndexBoutonCase(i);

JoueurListeUnite devrait etre declarer en private et
il devrait y avoir un acccesseur en ecriture et lecture de type :
public ListeUnite getJoueurListe();
et
public void setJoueurListeUnite(ListeUnite lu);

Parce que la c po terrible !

Je pense qu'en fait cela vient de là.
N'utilise jamais dans des classes des attributs public mais plutot
private puis des accesseurs !

voila test ++++

##########################
# Alphaspawnrider@Yohann
# alphaspawnrider@hotmail.com
##########################
0
shomron Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 30 juin 2010
27 déc. 2004 à 04:56
merci beacoup c'est finalement ce que j'ai fait et donc ca marche impecable
enfait je pense que javait un certain doute par raport a ces encapsulation mais vue que je possedait 2 objet different je me suis dis que ca allait marcher donc jai pas utiliser la POO
bein merci beacoup jesper que je pourai aider des que je serai un expert en java lol
a plus bonne vacances
0
cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 1
27 déc. 2004 à 14:02
Salut ,

Euh
Ps : Suivi du mail.
Le probleme c'est que je peux pas executer ton projet... car j'ai ni l'ihm ni les images ni le main.
Une chose que tu devrais essaye : mettre des System.out.println("message de debugage");
un peu partout de sorte que tu puisse voir si tu utilise les bons indices !
que tu recoivent la bonne liste d'unites
que tu recoivent la bonne unité .
etc .....

Essaye cette methode et sinon envoi moi tout ton projet !

##########################
# Alphaspawnrider@Yohann
# alphaspawnrider@hotmail.com
##########################
0
Rejoignez-nous