Bref bref bref =)
Je possède deux packages
un que j'ai appelé tp3 et un autre que j'appelle jeu.
tp3 contient une interface et une classe implémentant cette interface.
- Code: Tout sélectionner
package tp3;
public interface Sujet {
public String getNom();
public int getArgent();
public void run();
}
En réalité vous verrez que le package tp3 contient un import venant d'un autre package, mais ici ce n'est pas ça qui m'intéresse.
- Code: Tout sélectionner
package tp3;
import tp3.console.ConsoleJavaBoy;
public class PetitPrince implements Sujet{
public String nom;
public int argent;
ConsoleJavaBoy c1;
public PetitPrince()
{
c1=new ConsoleJavaBoy(this);
}
public String getNom() {
return this.nom;
}
public int getArgent() {
return this.argent;
}
public void run() {
c1.parler("Hola");
c1.seDirigerVers(0);
}
Le package jeu contient une classe abstraite
- Code: Tout sélectionner
package jeu;
public abstract class JeuSimple {
private String nom;
public JeuSimple(String unNom)
{
this.nom=unNom;
}
public String getNom()
{
return this.nom;
}
public abstract int arbitrer(String c1, String c2);
public abstract String jouerUnTour();
}
Ainsi que plusieurs classe qui vont reprendre cette classe abstraite
Par exemple celle ci
- Code: Tout sélectionner
package jeu;
import java.util.Random;
public class JeuDeDe extends JeuSimple{
private Random random=new Random();
public JeuDeDe()
{
super("Jeu de d�s");
}
public String jouerUnTour() {
return(Integer.toString(random.nextInt(6)+1));
}
public int arbitrer(String c1, String c2) {
int n1=Integer.parseInt(c1); //transforme un string en int
int n2=Integer.parseInt(c2);
if(n1>n2)
{
return -1;
}
else if(n1<n2)
{
return 1;
}
return 0;
}
}
A ce stade là, on me demande d'implémenter une interface Joueur contenant deux void gagner et perdre.
J'ai pris la décision (peut être à tord ?) de le mettre dans le package jeu
- Code: Tout sélectionner
package jeu;
public interface Joueur{
void gagner(int argent);
void perdre(int argent);
}
On me demande ensuite de faire une classe de test pour vérifier que le tout fonctionne correctement.
J'ai donc fais toujours dans le package jeu
package jeu;
- Code: Tout sélectionner
public class Test {
static void Arbitrer(Joueur j1, Joueur j2, JeuSimple jeu)
{
String chaine1=jeu.jouerUnTour();
String chaine2=jeu.jouerUnTour();
int gagnant=jeu.arbitrer(chaine1,chaine2);
if(gagnant==1)
{
}
}
C'est cette dernière classe qui va donc articuler un peu tout ensemble, et j'ai du mal à y voir clair.
En fonction de la valeur de gagner, je vais devoir faire un appel sur mes fonction gagner et perdre.
Donc j'aimerais pouvoir récupérer l'argent des joueurs pour faire l'appel aux fonctions codé dans Joueur.
Sauf que, dans mon joueur je n'ai aucun moyen d'accéder à l'argent.
Je me suis donc dis que Joueur devait être mis en relation avec Sujet ou bien avec PetitPrince; mais rien n'y fais je ne vois pas comment faire le lien.
Au final n'aurais je pas dû implémenter Joueur dans tp3 ? Mais dans ce cas là comment je fais pour lier cet interface avec l'autre package ???
Je suis un peu paumé comme vous pouvez le voir :hum:
