seichan94
Messages postés38Date d'inscriptionmardi 29 octobre 2013StatutMembreDernière intervention 6 novembre 2014
-
27 nov. 2013 à 16:56
seichan94
Messages postés38Date d'inscriptionmardi 29 octobre 2013StatutMembreDernière intervention 6 novembre 2014
-
28 nov. 2013 à 13:33
Bonjour les gens !
petite question
j'ai une classe Joueur qui crée un objet Joueur :
Joueur J1 = new Joueur(String nom, String type, new Score());
info :
type est un String simple pour définir quel joueur est l'humain/Com.
Score est une classe qui crée des objets scores(point, set, Manche).
Question : est il possible de dire que l'obj score crée ici appartient a humain
est ainsi l'utilisé :
J1.score.setPoint();
J2.score.setPoint(); lobjet score est different pour J1 et J2
affiche J1 = 1 à J2 = 0
Ce qui me gène c'est de devoir donné une ref a chaque obj score.
BunoCS
Messages postés15368Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention12 mai 2023102 27 nov. 2013 à 17:06
Hello,
Vu l'appel de ton constructeur, c'est le joueur qui porte l'objet Score. Donc, si tu as 2 joueurs, tu auras 2 objet Score distincts...
C'est ce fonctionnement que tu veux?
seichan94
Messages postés38Date d'inscriptionmardi 29 octobre 2013StatutMembreDernière intervention 6 novembre 2014 27 nov. 2013 à 18:31
Bonsoir BunoCS
oui c'est bien cela que je souhaite.
je vais tester je vais bien voir si cela fonctionne.
mais comment l'objet score sait qu'il appartient a J1 et pas à J2 ???
le fait de le créer par l'objet joueur ajoute une ref a cet objet ?
si oui peut ont la retrouver ?
Merci pour ton aide
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023126 27 nov. 2013 à 18:44
"comment l'objet score sait qu'il appartient a J1 et pas à J2 ??" L'attribut "score" que tu as mis dans ta classe Joueur est spécifique à chaque objet. Donc J1.score et J2.score sont différents et appartiennent respectivement à J1 et J2.
Mais l'objet "score" ne sait pas s'il appartient à J1 ou J2, et c'est rarement utile qu'il le sache.
seichan94
Messages postés38Date d'inscriptionmardi 29 octobre 2013StatutMembreDernière intervention 6 novembre 2014 27 nov. 2013 à 22:54
Merci KX
en revanche je ne parvient pas a récupérer les valeurs de mon objet score, j ai ma classe main ma classe joueur et ma classe score je vous montre :
main :
public static void main(String[] args) {
Joueur J1 = new Joueur("KX");
System.out.println(J1.score.getPoint());
}
Joueur :
public class Joueur {
// varaible
String name;
// constructeur
public Joueur() {
this.name = "anonyme";
Score score = new Score();
}
// constructeur avec p
public Joueur(String name) {
this.name = name;
Score score = new Score();
}
}
Score :
public class Score {
protected int point;
/// constructeur
public Score() {
this.point = 0;
}
public void setPoint() {
this.point += 1;
}
}
La ce code ne fonctionne pas il doit y avoir un truc que je n'ai pas zapé.
Merci pour votre aide
seichan94
Messages postés38Date d'inscriptionmardi 29 octobre 2013StatutMembreDernière intervention 6 novembre 2014 27 nov. 2013 à 22:56
il manque cela dans ce que je vous donne mais avec ça ne fonctionne pas quand même.
public int getPoint() {
return this.point;
}
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023126 Modifié par KX le 27/11/2013 à 23:03
Le problème ici c'est que
score
est décrite comme une variable locale dans le constructeur alors qu'elle devrait être un attribut au même titre que
name
:
public class Joueur
{
public String name;
public Score score;
public Joueur()
{
this.name = "anonyme";
this.score = new Score();
}
public Joueur(String name)
{
this.name = name;
this.score = new Score();
}
}
seichan94
Messages postés38Date d'inscriptionmardi 29 octobre 2013StatutMembreDernière intervention 6 novembre 2014 27 nov. 2013 à 23:26
Merci beaucoup !
ça fonctionne très bien :)
j'ai une dernière question pour la conception
je m'explique sur le principe :
1) je créer une partie de jeu pour cela je créer un objet partie avec les paramètre (nbr de coup jouer, nbr de joueur, ...)
2) l'objet partie ce construit avec les paramètre et crée les objet
- Joueurs
3) qui eux vont crée les objet
--Score
conclusion pour modifier mon score je fait partie.J1.score.setPoint();
par la suite je souhaite ajouter un écouteur sur score pour actualisé l'affichage des points.
pour le moment ça fonctionne (grâce vous) mais est ce que c'est la bonne solution
je garde le code comme ça ?
ou
il vaut mieux séparer l'objet partie de Joueur et score ?
ou
les rendre tous individuel ?
ou
Faire autrement ???
encore merci pour votre aide
(a l'issus je clôture le poste)