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

avec Java Discussion :

Plateau jeu de belote


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut Plateau jeu de belote
    Bonjour à tous,

    J'ai fait beaucoup de recherches avant de poster et comme je m'enfonce de plus en plus je prefere vous posez la question. En fait je suis en train de créer un jeu de belote simple en C/S (je sais gros projet pour un débutant). J'ai créé mon plateau de jeu et ce que je voudrais c'est :
    1°) Comment améliorer mon code en gardant le meme résultat? (j'ai essayé plusieurs Layout mais c'est le seul qui convienne)
    2°) Comment puis-je raffraichir mon plateau de jeu en y affichant les données, c'est a dire recupérer les paramètres et les afficher.

    ================
    Voici mon code :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    import javax.swing.*;
    import javax.swing.border.Border;
    import javax.swing.border.LineBorder;
     
    import java.awt.*;
     
    public class PlateauJeu extends JFrame{
     
    	public PlateauJeu(){
     
    		construitJeu();
    	}
    //Construction du plateau de jeu
    	public void construitJeu(){
     
    		JPanel panel = new JPanel();
    		//this.setContentPane(panel);
    		Border border = LineBorder.createBlackLineBorder();
     
    		panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
            panel.setLayout(new GridLayout(5, 10, 5, 5));
            //Construction haut du plateau
            String[] haut = {
                "Gagnant", "", "", "Joueur1", "Joueur2", "Joueur3", "Joueur4", "","","Atout"};
            for (int i = 0; i < haut.length; i++) {
                if (i == 1 || i == 2 || i == 7 || i == 8) 
                    panel.add(new JLabel(haut[i]));
                   	//buttons[i].setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
                else 
                    panel.add(new JButton(haut[i]));
     
            }
            //Construction milieu du plateau
            JLabel gagnant = new JLabel("V");
            gagnant.setBorder(border);
            panel.add(gagnant);
            panel.add(new JLabel(haut[2]));
            panel.add(new JLabel(haut[2]));
            JLabel p1 = new JLabel("P");
            p1.setBorder(border);
            panel.add(p1);
            JLabel p2 = new JLabel("P");
            p2.setBorder(border);
            panel.add(p2);
            JLabel p3 = new JLabel("P");
            p3.setBorder(border);
            panel.add(p3);
            JLabel p4 = new JLabel("P");
            p4.setBorder(border);
            panel.add(p4);
            panel.add(new JLabel(haut[2]));
            panel.add(new JLabel(haut[2]));
            JLabel atout = new JLabel("A");
            atout.setBorder(border);
            panel.add(atout);
            //ligne blanche
            for (int i = 20; i < 30; i++){
            	panel.add(new JLabel(haut[2]));
            }
     
            //bas de la fenetre
            panel.add(new JLabel(haut[2]));
            JLabel j1 = new JLabel("P");
            j1.setBorder(border);
            panel.add(j1);
            JLabel j2 = new JLabel("P");
            j2.setBorder(border);
            panel.add(j2);
            JLabel j3 = new JLabel("P");
            j3.setBorder(border);
            panel.add(j3);
            JLabel j4 = new JLabel("P");
            j4.setBorder(border);
            panel.add(j4);
            JLabel j5 = new JLabel("P");
            j5.setBorder(border);
            panel.add(j5);
            JLabel j6 = new JLabel("P");
            j6.setBorder(border);
            panel.add(j6);
            JLabel j7 = new JLabel("P");
            j7.setBorder(border);
            panel.add(j7);
            JLabel j8 = new JLabel("P");
            j8.setBorder(border);
            panel.add(j8);
            panel.add(new JLabel(haut[2]));
            panel.add(new JLabel(haut[2]));
     
            int j = 1;
            for (int i = 42; i < 50; i++){
            	panel.add(new JButton(""+j));
            	j++;
            }
     
            add(panel);
     
            setSize(900, 400);
        	setTitle("JEU DE BELOTE");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLocationRelativeTo(null);
            setVisible(true);
     
     
    	}
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		PlateauJeu pla = new PlateauJeu();
    	}
    }
    ===========

    Merci d'avance pour vos réponses et désolé de vous ennuyer avec sa.

    Bonne journée,

  2. #2
    Membre expérimenté Avatar de Roy Miro
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 273
    Par défaut
    Bonsoir,

    Tu as la méthode repaint() que tu peux appeler sur ton panel pour que ce dernier se redessine.
    Qu'est-ce que tu appelles "paramètres"?

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Salut,
    Merci pour ta réponse. En fait je voudrais que mes Label "recoivent" les données comme les noms des cartes et les afficher
    J'ai cru comprendre qu'on ne peut pas passer de paramètres pour mettre a jour les JLabel dans un constructeur.
    Peux tu m'éclairer?
    Merci

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Par défaut
    Regarde du coté des disgn pattern mvc et observer, ca te simplifiera la vie pour ton jeu de plateau ;-)

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Salut,
    Merci pour ta réponse. Maintenant je sais que sa existe. Mais je pense pas etre assez experimenté pour pouvoir implémenter ça.
    Si vous avez d'autres réponses je suis a l'ecoute.

  6. #6
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    tu peux utiliser setText() sur certains composants, dont le JLabel.
    Mais au final tu devras cliquer sur les cartes ? Dans ce cas le plus simple serait peut-être d'utiliser directement des boutons pour les cartes aussi (et plus tard tu pourras mettre des images).

    Sinon, je ne comprends pas bien ton plateau. Par exemple, pour les cartes à quoi servent les boutons en-dessous de 1 à 8 ? (D'ailleurs t'as pas que 5 cartes à la belote ? à force de jouer à la belote de comptoir, je ne m'en souviens plus lol)

    En fait, tu fais directement une interface mais je pense que le mieux serait déjà de penser à tes structures de stockage, par exemple ton tableau ou classe Jeu, Main, etc.

    Au fait que veux-dire "C/S" ?

  7. #7
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Citation Envoyé par Doun's Voir le message
    En fait je suis en train de créer un jeu de belote simple en C/S (je sais gros projet pour un débutant).
    Je ne te le fais pas dire...
    C'est un projet que tu fais pour les cours ? Ton prof t'a-t-il encouragé à faire une Belotte ?
    J'ai développé, il y a deux ans, un jeu de Manille Client/Serveur, sur lequel j'ai ensuite développé le Whist belge et le Rikiki. C'est vraiment difficile ; il y a beaucoup de choses à prendre en compte.

    Voici le rapport sur mon projet. Ca te donnera une idée d'une bonne architecture pour le tien.
    ftp://ftp-developpez.com/sjrd/cours/rapport-ttg.pdf
    Le projet sur SourceForge.net :
    https://sourceforge.net/projects/tricktakinggame/

    L'idée générale, c'est d'avoir un thread par partie sur le serveur pour gérer la partie en elle-même. Plus un thread par client sur le serveur pour gérer la communication avec le client.
    Quand la partie décide que c'est au tour du joueur 1 de jouer, elle utilise la connexion avec le joueur 1 pour lui dire : "Je veux que tu joues". Puis le client lui répond. Ensuite la partie peut continuer, en disant à tout le monde que le joueur 1 a joué un Valet de Pique, puis en demandant au joueur 2 de jouer. Et ainsi de suite.

    C'est le thread de gestion de partie qui gère tout. Les autres ne sont là que pour lui obéir.

    Maintenant, tu peux envisager la chose de manière totalement différente. Si c'est pour ton cours, ce ne sera peut-être pas possible, mais bon. En fait mon projet est complètement modulaire. Ce qui fait qu'il est possible d'écrire un plugin pour la Belote qui fonctionnerait avec toute la gestion réseau et client que j'ai déjà écrite. C'est ainsi que j'ai écrit trois plugins, pour la Manille, le Whist et le Rikiki.

    Donc éventuellement - à moins que ton challenge ne consiste à tout faire tout seul - tu pourrais te focaliser sur l'écrire d'un plugin Belote pour TrickTakingGame. Ca te faciliterait énormément la tâche, mais c'est peut-être moins drôle pour toi

    À toi de voir...
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  8. #8
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Salut a tous,
    Merci pour toutes vos interventions. Grace à toutes vos infos et aux tutos j'arrive a avancer d'une manière régulière. Sa me permet aussi d'apprendre de plus en plus ce langage. Comme vous l'avez dit sa permet de prendre en compte pleins de choses donc rien de mieux non?

    En tout cas merci a tous j'hesiterais pas a vous contacter pour mes questions futures

    Nartrouvé (comme dit chez moi a la réunion "=> a la prochaine")

Discussions similaires

  1. jeu de belote + intelligence artificielle
    Par @NW@R dans le forum Intelligence artificielle
    Réponses: 11
    Dernier message: 14/04/2008, 23h14
  2. Plateau de jeu à hexagones, Java ou Flash ? + aide
    Par PopovSquare dans le forum Développement 2D, 3D et Jeux
    Réponses: 16
    Dernier message: 02/03/2007, 23h59
  3. demande d'aide pour faire un plateau de jeu en java
    Par trodurlejava dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2007, 12h40
  4. [GUI]jeu de plateau
    Par le Daoud dans le forum Interfaces Graphiques en Java
    Réponses: 11
    Dernier message: 31/08/2005, 13h38

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