Classe Java

Résolu/Fermé
Apaachee Messages postés 248 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 25 août 2011 - 7 déc. 2009 à 16:42
LnG01 Messages postés 258 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 8 janvier 2010 - 8 déc. 2009 à 09:45
Bonjour,
Je dois créer un jeu dans le cadre de ma licence. Le jeu se fait sur un plateau et le nombre de cases de ce plateau est variable ainsi que la couleur des pions que l'ordinateur joue.

class Joueur{
	

	Joueur(int n, String c, boolean variante){
		int nbCases = n;
		String couleur = c;
		System.out.println("Couleur : "+couleur+" Taille plateau : "+nbCases);
	}

        Coup play(Coup a){ ... }
}


Deux autres classes existent : Connexion (l'interface graphique qui fait jouer ma classe joueur) et la classe coup, je n'ai pas accès à ces classes.

Le jeu appelle mon constructeur de ma classe Joueur puis fait jouer ma fonction Coup().
Comment récupérer mes variables nbCases et couleur(2 joueurs donc 2 couleurs de pions) dans ma fonction Coup() ?
A voir également:

8 réponses

LnG01 Messages postés 258 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 8 janvier 2010 70
7 déc. 2009 à 16:45
créer des getters qui récupère ces variables ex :

public int getNbCases () {
return this.nbCases;
}

tu les appelles ensuite dans ta méthode Coup
0
Apaachee Messages postés 248 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 25 août 2011 47
7 déc. 2009 à 16:49
J'avais essayé et...

Error : Cannot find symbol
symbol : variable nbCases
0
Apaachee Messages postés 248 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 25 août 2011 47
7 déc. 2009 à 16:54
Autre question, comment appelles mon getter (quand il fonctionnera) dans ma fonction Coup ?
0
LnG01 Messages postés 258 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 8 janvier 2010 70
7 déc. 2009 à 16:54
déclare tes variables en globales dans ta classe :
class Joueur{
	int nbCases;
        String couleur;


	Joueur(int n, String c, boolean variante){
		setNbCases(n);
		setCouleur(c);
		System.out.println("Couleur : "+getCouleur()+" Taille plateau : "+getNbCases());
	}

        public int setNbCases(int nbrCases) {
            this.nbCases=nbrCases;
        }

         public String setCouleur(String color) {
            this.couleur=color;
        }


        public int getNbCases() {
           return this.nbCases;
        }

       public String getCouleur() {
          return this.couleur;
       }
        Coup play(Coup a){ 

        getNbCases();
        }
}


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Apaachee Messages postés 248 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 25 août 2011 47
7 déc. 2009 à 17:00
Impeccable, problème entièrement résolu !!

Merci LnG01 :)
0
LnG01 Messages postés 258 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 8 janvier 2010 70
7 déc. 2009 à 17:02
de rien, c'est la base là les getters et setter...
Bonne chance pour la suite

PS : pour info, si tu déclares les variables dans ton constructeur, elles ne seront visibles que par ce conctructeur, et pas accessibles de l'extérieur (elles n'existent qu'à l'intérieur de cette méthode), d'où l'interet de les déclarer dans la classe elle même. Ainsi, n'importe quelle méthode de ta classe Joueur peut y accéder.
Le constructeur est là pour "paramétrer" ces variables (leur donner une valeur) mais pas pour déclarer leur existence, cela se fait au niveau de la classe.
0
Apaachee Messages postés 248 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 25 août 2011 47
7 déc. 2009 à 17:46
J'ai vraiment du mal avec les classes :/

2 classes dans 2 fichiers :

class Joueur{
	
	int nbCases;
    String couleur;
	Plateau plat;

	Joueur(int n, String c, boolean variante){
		setNbCases(n);
		setCouleur(c);
		plat = new Plateau((2*n)+1);
	}
...

}

class Plateau{
	
	char[][] plateau;

	Plateau(int n){
		
		System.out.println("Nb cases plateau : "+n+"x"+n);
	
		int i,j;
		for(i=0;i<=n;i++){
			for(j=0;j<=n;j++){
				setcase(i,j,'0');
			}
		}

	}
	
	public void setcase(int x, int y, char valeur) {
        this.plateau[x][y] = valeur;
    }

}

Erreur : java.lang.NullPointerException
0
LnG01 Messages postés 258 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 8 janvier 2010 70
8 déc. 2009 à 09:45
faut instancier ton plateau :
char [][] plateau = new char[a][b] où a et b étant les valeurs que tu veux, ou new char[a][] le deuxième paramètre étant défini dans une boucle
regarde ici : http://www.a525g.com/programmation/java-introduction-tableaux.htm
ou là : http://prevert.upmf-grenoble.fr/Prog/Java/CoursJava/tableaux.html
0