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 :

Projet Jeu d'échec


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 38
    Points : 25
    Points
    25
    Par défaut Projet Jeu d'échec
    Bonjour tous le monde
    je suis débutante dans le domaine de programmation et nouvelle dans le forum. voila j ai un mini projet en Java sur un jeu d'échec (deux joueurs et pas jouer contre l'ordinateur ) donc l'algorithme n 'est pas trop difficile mais mon probleme c que la partie sur le graphique et on nous demandé de travailler avec le graphique ben j ai consulté la doc sur awt et swing et j ai reussi et tracer la table du jeu mais je suis bloqué sur ça comment faire pour les pions? comment les faires bouger?. comment si on click sur une pièces les les cases possibles pour son déplacement devient d'une couleur différentes....
    Si vous avez des tuyaux aidez moi pleaz
    Ps j ai trouvé plusieurs projet similaire sur internet mais je veux pas rendre un travail que j ai pas créer moi même

  2. #2
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par Layla
    Bonjour tous le monde
    je suis débutante dans le domaine de programmation et nouvelle dans le forum. voila j ai un mini projet en Java sur un jeu d'échec (deux joueurs et pas jouer contre l'ordinateur ) donc l'algorithme n 'est pas trop difficile mais mon probleme c que la partie sur le graphique et on nous demandé de travailler avec le graphique ben j ai consulté la doc sur awt et swing et j ai reussi et tracer la table du jeu mais je suis bloqué sur ça comment faire pour les pions? comment les faires bouger?. comment si on click sur une pièces les les cases possibles pour son déplacement devient d'une couleur différentes....
    Si vous avez des tuyaux aidez moi pleaz
    Ps j ai trouvé plusieurs projet similaire sur internet mais je veux pas rendre un travail que j ai pas créer moi même
    Salut, et bienvenue sur le forum !

    Avant de commencer à programmer, tu devrais faire un diagramme de classe UML, pour bien architecturer ton programme : plateau, case, pièce, joueur, coup, etc.

    Ensuite au niveau graphique, moi je ferai un "wrapper" pour les cases, qui étend la classe JPanel. Donc un truc du genre :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class CaseWrapper extends JPanel 
    {
     
       private Case laCase ;
       private boolean canPlay ; // true si le joueur peut déplacer le pion courant sur cette case
     
       public CaseWrapper ( Case uneCase ) {
          super() ;
          this.laCase = uneCase ;
          this.setBackground( laCase.getColor() ) ;
          this.canPlay = false ;
       }
     
       public boolean canPlay() {
          return canPlay ;
       }
     
       public void setCanPlay( boolean canPlay ) {
          this.canPlay = canPlay ;
          if ( canPlay )
             this.setBackground( Color.green ) ; // Couleur verte si on peut jouer sur la case
          else
             this.setBackground( laCase.getColor() ) ;
       }
     
       public void paintComponent( Graphics g ) {
          super.paintComponent( g ) ; // Dessin de la case
          if ( laCase.getPiece() != null ) {
             // Peindre l'image de la piece ;
          }
       }
     
       // Ajouter getter & setter pour la case
    }
    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
    public class Case
    {
       private final Color color ; // déclaré en final car une case ne peut pas changer de couleur
     
       private Piece piece ;    // Piece présente sur la case, null si case vide
     
       public Case ( Piece piece, Color color ) {
           super() ;
           this.piece = piece ;
           this.color = color ;
       }
     
       public Color getColor() {
          return color ;
       }
     
       // Ajouter getter & setter  de piece
    }
    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
    20
    21
    22
    /** Classe abstraite. Toutes les pieces du jeu devront étendre cette classe et redéfinir la méthode getMoves( Plateau plateau ), car chaque pièce a un mouvement différent.*/
    public abstract class Piece
    {
          protected Point p ; // coordonnees des cases où se trouve la piece
          protected final Joueur joueur ; // Joueur qui possede la pièce
          protected Image image ; // Image de la pièce, à récupérer sur le disque dur
     
          public Piece ( Joueur joueur, Point p ) {
             super() ;
             this.joueur = joueur ;
             this.p = p ;
          }
     
          // Renvoie la liste des case où peut se déplacer la piece
          prublic abstract List<Case> getMoves( Plateau plateau ) ;
     
          // Ajouter getter & setter de p et image, et getter de joueur
    }
     
    public class Pion extends Piece { ... }
    public class Tour extends Piece { ... }
    etc.
    L'avantage de faire un wrapper pour les cases, c'est que tu peux y détecter les mouvements de la souris, et donc tu peux mettre une petite bordure rouge (par exemple) au moment du survol de la souris, et l'enlever quand la souris s'en va . En +, ton plateau sera un simple JPanel avec un GridLayout, donc pas besoin de dessiner les cases à la main !

    C'est un début. A toi de continuer dans ce sens là, ou de développer ta propre architecture !

    Bonne chance !

    ++

    EDIT : Dans la classe Piece, il faut mettre les attributs en "protected" et non pas en "private" pour qu'ils soient accessibles dans les classes filles ! Je me suis trompé, je corrige ça tout de suite .

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    100000000000000 Merci ca m a beaucoup aidé Merci bcp je vais essyer de continuer sur ce que tu m a donné et te faire savoir le resultat

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Bonjour
    j ai pa pu faire grand chose avec ton modele

  5. #5
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par Layla
    ca m a beaucoup aidé
    Citation Envoyé par Layla
    j ai pa pu faire grand chose
    Faut savoir !

    Je t'ai donné la base, maintenant à toi de te débrouiller, et d'écrire les classes manquantes : Joueur, Plateau, etc...
    Personne sur ce forum ne va te mâcher le boulot, et je trouve que j'ai déjà fait pas mal en te donnant ce code.
    Alors maintenant, lance toi !

    ++

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Wrapper
    "Ensuite au niveau graphique, moi je ferai un "wrapper" pour les cases......"

    C'est la premeire fois que j'entends parler d'un "wrapper" aurais tu un lien sympa qui explique comment ca fonctionne ?

    Merci d'avance !!!

  7. #7
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par Sourrisseau
    "Ensuite au niveau graphique, moi je ferai un "wrapper" pour les cases......"

    C'est la premeire fois que j'entends parler d'un "wrapper" aurais tu un lien sympa qui explique comment ca fonctionne ?

    Merci d'avance !!!
    Salut,
    J'ai aucun lien, désolé ! Ce n'était peut être pas le bon mot, j'aurai du employer le terme de vue et de modèle. Je pense que ça te dit plus de choses ça, non ? Design pattern MVC inside .
    Case : Modèle
    CaseWrapper : Vue
    Désolé, je débute encore dans le domaine .

    ++

  8. #8
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Merci
    Ok j'ai trouvé ... merci de la precision ....

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    salut a tout le monde
    mes amis j'ai besoin l'etude de cas (jeux d'échecs) avec l'analyse uml avec tt les diagramme + l'explication de chaque diagramme
    aidez moi plz
    j'ai besoin de votre aidée

  10. #10
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    bien que ce soit un jeu entre 2 humains, est-ce que le programme devra vérifier la validités des coups ? ... auquel cas, il faudrait qu'il sache générer les coups afin de contrôler les déplacement.
    Ca c'est une autre histoire...

    @ bientôt...
    @ bientôt...

    Salut & @+ sur 3W!

  11. #11
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    comment faire pour les pions? comment les faires bouger?
    Tu sais quelle est la case de départ, et où tu veux aller;
    donc il faut vider la case de départ (dessiner une image vide...), vider aussi la case d'arrivée (si elle est occupée...) et dessiner ta pièce dans sa nouvelle case.

    ou alors mieux : drag and drop...

    ou un label dans chaque case, label.setIcon(null) pour une case vide, label.setIcon(iconeDeLaPièceConcernée) pour poser une pièce donnée dans la case en question...

    http://java.developpez.com/faq/
    http://java.developpez.com/cours/

    Bonne chance !

Discussions similaires

  1. [Free Pascal] Projet d'un programme de jeu d'échecs
    Par Roland Chastain dans le forum Contribuez
    Réponses: 349
    Dernier message: 31/07/2020, 14h29
  2. [Flash Pascal] Projet d'un programme permettant de visualiser une position du jeu des échecs
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 11
    Dernier message: 21/06/2015, 10h05
  3. Projet jeu RPG/moteur 3D isométrique avec SDL
    Par Milan111 dans le forum Projets
    Réponses: 4
    Dernier message: 13/04/2006, 23h01
  4. Cherche codeur(s) pour projet jeu 2D (graphs dispo)
    Par eRz0r dans le forum Projets
    Réponses: 1
    Dernier message: 09/02/2006, 10h18
  5. Jeu d'échec borland soap
    Par rpoulin dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/10/2005, 06h02

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