IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

aide sur la structure d'un code


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut aide sur la structure d'un code
    Bonjour,

    Dans un projet de Jeu, j'ai besoin de faire jouer des joueurs réels et virtuels.
    J'ai donc créé une classe Joueur définissant des objets Joueur.

    Dans la classe principale, je dois faire agir les joueurs (ils doivent deviner une combinaison).
    J'aimerai demander à un joueur d'agir par une fonction type :

    Agir(Joueur joueurQuiVaAgir);

    mais sans savoir s'il s'agit d'un joueur reel ou d'un joueur virtuel. Bien entendu, un joueur reel n'agit pas de la même facon qu'un virtuel.

    Quelle structure dois-je utiliser ?

    J'ai pensé à une classe JoueurVirtuel qui etendrait la classe Joueur mais je suis pas sîr que ca puisse marcher.

    Merci d'avance,

    si ce n'est pas assez clair, demandez moi de reformuler svp

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Il vaut mieux que tu définisses une interface Joueur qui possède les méthodes communes. ensuite tes classes implémentent cette interface.

    Ensuite dans ton programme, tu te sers de Joueur sans te soucier s'il est réel ou virtuel ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    Par défaut
    Bonjour,

    En Java, ta fonction Agir(Joueur joueurQuiVaAgir); devrait être une méthode "déclenchée" de la sorte : joueurQuiVaAgir.agir();

    Tu devrais donc créer une interface Joueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface Joueur {
     
        public void agir();
     
    }
    et 2 classes "JoueurReel" et "JoueurVirtuel" implémentant l'interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class JoueurReel implements Joueur {
     
        public void agir() { // je mets du void mais j'en sais rien :)
          //.......
          //traitement
         //.......
        }
     
    }
     
    public class JoueurVirtuel implements Joueur {
     
        public void agir() {
          //.......
          //traitement
         //.......
        }
     
    }
    Ensuite, dans ton "main", tu manipules directement les interfaces "Joueur".

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci, c'est exactement ce qu'il me fallait.

    Mais, juste un truc; Où dois-je mettre mes variables d'instances, constructeurs, methodes d'instances, accesseurs (Ils sont presque tous commun au joueur virtuel et au joueur reel).

    Dans l'interface ? ou faut-il copier le code dans les deux classes virtuel et reelle ?

  5. #5
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Tu peux les mettre dans l'interface je pense.
    Mais tu peux aussi créer une classe Joueur contenant tout ce dont t'as besoin et ensuite les classes JoueurReel et JoueurVirtuel hériteront de celle-ci.

    A part, en POO, un objet effectue lui-même l'action, on ne le force pas à le faire.
    Donc tu ne dois pas faire un truc du genre : joueur1.bouger(joueur2) pour faire bouger joueur2 mais plutôt joueur2.bouger().

    Nas'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petite aide sur la comprehension d'un code
    Par Pauli dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2007, 20h24
  2. Aide sur les structures
    Par scofild20 dans le forum C
    Réponses: 13
    Dernier message: 18/04/2007, 15h26
  3. [Structure] Aide sur une structure XML (et le vocabulaire associé)
    Par projetdk40 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 14/02/2007, 10h38
  4. Aide sur les structures.
    Par Fred2209 dans le forum C++
    Réponses: 7
    Dernier message: 06/11/2006, 14h35
  5. Aide sur les structure
    Par Yoshio dans le forum C
    Réponses: 7
    Dernier message: 18/02/2006, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo