CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Mastermind

ryviel
ryviel
Niveau 5
28 juin 2011 à 20:27:55

Bonjour à toutes et à tous,

J'ai coder un jeu de Mastermind en java, en mode console.
Le programme fonctionne parfaitement, j'affiche le nombre de bons pions et le nombre de pions mal placés (bien sur sans compter les pions déjà vérifiés), le code à découvrir généré aléatoirement etc...

Je compte maintenant passer à l'interface graphique. J'ai bien compris qu'il me faut déjà un endroit où il y aura mes pions de différentes couleurs. Par contre, je bloque totalement sur le principe du plateau en lui même.
J'ai réfléchis à deux solutions:

- Mettre une image de fond,(ou le dessiner directement sur la fenetre), d'un jeu de mastermind vide. Quand on clique sur les pions (cf au-dessus), le pions se met à la bonne place grâce au calcul de ses coordonnées.

-Réussir à "partitionner" le plateau. C'est à dire avoir comme une "grille" (4 cases de larges pour les couleurs et 10 de long pour les essais) qui contiendrait les images des couleurs, et avoir juste à côté, une autre petite "grille" (4 cases) pour les images des "petit pions".

Le premier cas me parrait assez compliqué, mais pour le deuxième, je ne vois pas trop comment m'y prendre. Je pense qu'il faut utiliser l'objet GridLayout, mais ensuite je ne sais pas ce qu'il faudrait ajouter à l'intérieur de celui-ci.

De même, je ne suis pas encore sûr que mon système de pions soit vraiment au point, vu qu'il faudrait effacer le dernier pion ajouté si le joueur veut faire une correction, j'ai bien entendu penser a choisir un pion, puis de choisir sa place sur la grille. Donc récuperer le code du pion sélectionné (méthode getPiont), et pouvoir l'insérer sur le plateau (setPiont). Par contre, je ne sais pas si cela est possible/

Si quelqu'un pouvait m'éclairer, se serait sympa :)

Merci d'avance.

Valve
Valve
Niveau 7
28 juin 2011 à 23:03:47

Tiens, j'ai codé la même chose il n'y a pas longtemps ..

Pour ma part chacun de mes emplacement représente un JLabel pour lequel je change la couleur en utilisant la méthode setIcon.

Voila :)

ryviel
ryviel
Niveau 5
30 juin 2011 à 13:21:07

Bonjour,

Tout d'abord, merci pour votre réponse.
Premièrement, j'ai essayer d'afficher seulement un JPanel rempli de ronds vides. J'ai réussi, puis j'ai tenter d'afficher un disque de couleur à la place d'un des emplacements, malheureusement, la superposition des JPanel est plus compliquée que je n'aurais pensé ^^.

Deuxièmement, j'ai essayer de trouver un moyen avec votre solution. Je n'ai trouver qu'un seul moyen : une matrice de JLabel (JLabel[10][4]). Par contre, je n'ai pas encore vraiment chercher pour le setIcon. J'ai regarder vite fait sur internet mais je n'ai pas encore pu mettre en pratique. D'après ce que j'ai compris, il faudrait déjà un objet Icon pour l'image par défaut (une image avec un emplacement vide), et des Icon pour chacun des pions de couleurs. Est-ce bien cela?

Merci d'avance.

tbop2
tbop2
Niveau 10
30 juin 2011 à 13:29:43

Yep. En fonction de la couleur de ton pion tu auras un endroit dans ton code qui fera la relation avec un icon de la meme couleur que tu auras charge en ressource dans ton application.

En effet un jlabel semble approprie, sauf si tu veux que cela soit clickable et dans ce cas la il faudra passer par un JButton pour plus de commodites.

PS: Pas la peine de vouvoyer ici bas.

ryviel
ryviel
Niveau 5
30 juin 2011 à 14:16:04

Désolé, j'aime pas trop tutoyer ^^

Donc en faite, je ne sais pas encore comment faire pour placer mes pions.

Soit avoir comme un GridLayout pour choisir les différents pions que l'on veut placer, mais la modification d'un pion serait plutôt embêtante, il faudrait avoir un bouton "reset" pour tout enlever, ou un bouton "retour" pour enlever juste le dernier pion placé.

Soit avoir justement tout les emplacements des pions cliquable et ensuite pouvoir choisir la couleur mais cela me semble pas mal compliqué étant donné que c'est ma première interface graphique ... Je ne sais pas si il est possible d'avoir chaque emplacements cliquable et qu'un menu apparaisse pour choisir la couleur désirée. Et, est-ce qu'il est possible de "désactiver" un JButton? Car il faut pouvoir cliquer que sur la ligne de l'essai en cours ^^

Je ne vois que ces deux solutions.

Je suis en DUT Informatique, et la programmation évènementielle est plutôt au programme de la deuxième année, mais j'ai envie de prendre un peu d'avance pendant les vacances, en complétant ma formation sur le Java en autodidacte. De ce fait, je ne connais pas encore bien les solutions pour réussir ce genre de programme. Les procédures en mode consoles sont assez simples, mais l'interface graphique est d'un niveau beaucoup plus haut.

Merci en tout cas de prendre du temps pour m'aider.

ryviel
ryviel
Niveau 5
01 juillet 2011 à 20:01:14

Bonsoir,

Désolé du double post :/

Donc alors, j'ai continuer mon projet, et j'ai réussi à faire quelques petites choses.

Tout d'abord, j'ai afficher un seul JLabel pour tester, et il s'affiche correctement avec son image.

Ensuite, j'ai essayer de faire un bouton pour changer l'image du JLabel. Donc j'ai créer un JButton avec une image de pion d'une autre couleur, et j'ai mis l'action associée a l'aide de la méthode "actionPerformed".

Enfin, j'ai mis chaque pions dans des boutons séparés, en GridLayout, et bien sur, compléter la méthode "actionPerformed" de tel sorte qu'il change l'image du JLabel en fonction du bouton cliqué.

Pour la suite, il faut donc que je change le JLabel en une matrice de JLabel, puis que je me débrouille pour changer l'image du bon JLabel. Ensuite je pense que le reste suivra tout seul avec le code déjà fait en mode console.

Si vous avez des suggestions à me faire part, n'hésitez surtout pas :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment