Java

flo2704 -  
 flo2704 -
Bonsoir à tous, je suis occupé de programmer un Master Mind en Java mais je reste bloqué sur quelques points. J'ai déjà réalisé toute l'interface graphique etc. Mais je n'arrive pas à générer la combinaison choisie par l'ordinateur et la vérification de la combinaison entrée par l'utilisateur par rapport à celle choisie par l'ordinateur. Tout coup de pouce et conseil est bienvenu. Merci d'avance.

A voir également:

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Il va falloir être un peu plus concret dans tes attentes, parce que tu as pu commencer de 1000 manières différentes !
0
flo2704
 
Ben je veux bien envoyer le code que j'ai, mais c'est les méthodes qui me manque en faite...
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Il s'agit surtout de structure de données, de la manière dont tu as vu ton projet, par exemple pour générer une combinaison, il faudrait déjà savoir ce qu'est pour toi une combinaison (etc...)
0
flo2704
 
La combinaison c'est un suite de 4 couleurs parmi un choix de 7 couleurs déjà créées et ce qu'il me faudrait c'est la méthode qui permet de créer la combinaison de 4 couleurs aléatoirement. Je sais que c'est grâce à Math.random mais je ne sais pas comment l'intégrer =/ Merci d'avance :)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Math.random est une méthode un peu limitée, tu peux directement utiliser un objet de la classe Random

Random rand = new Random();

int clr1 = rand.nextInt(7); // Choisir un nombre entre 0 et 6
int clr2 = rand.nextInt(7);
int clr3 = rand.nextInt(7);
int clr4 = rand.nextInt(7);
0
flo2704
 
Ha super un grand merci :)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Il ne faut pas ajouter plusieurs fois le même objet, getContentPane().add(jp) et this.add(jp), c'est pareil, du coup ça pose problème. De même, tu as deux frame : this, et jf... ça fait un peu désordre. Enfin le pack va rentrer en conflit avec les setSize, qui eux même vont rentrer en conflit avec les layout, donc il ne faut pas trop en faire...

public class Appli extends JFrame
{
	private final Dessin d;
	private final JButton jb1;
	
	public Appli()
	{
		super("MasterMind");
		setSize(600,300);
		
		d = new Dessin(4,6);
		add(d,BorderLayout.NORTH);
		
		jb1 = new JButton("Check");
		add(jb1,BorderLayout.SOUTH);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	
	public static void main(String[] args)
	{
		new Appli();
	}
}
0
flo2704
 
Ha oui merci mais quand j'agrandis ma fenêtre il y a un emplacement blanc ...


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class Appli extends JFrame
{
private Dessin d;// JPanel
private JFrame jf;// JFrame

public Appli()
{
d = new Dessin(4,6);

setPreferredSize(new Dimension(600,300));
jf = new JFrame ("MasterMind");
JPanel jp = new JPanel();
d.setLayout(new BorderLayout());
d.add(new Button ("Check"),BorderLayout.SOUTH);
jf.setContentPane(d);
jf.setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.pack();
}
public static void main(String[] arg)
{
new Appli();
}
}


Donc si je vais comme ça c'est correct non ? Vu qu'il n'y a plus d'emplacement blanc en dessous ? :)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Tu as toujours tes deux JFrame ici, la première qui est ta classe extends JFrame, et la deuxième jf que tu déclares à l'intérieur du code, as-tu vraiment besoin des deux ?
Tu peux tester : new Appli().setVisible(true); pour bien voir que tu n'en as pas qu'une de créée...

Après si visuellement ça donne ce que tu veux tant mieux, moi perso, je n'ai pas la classe Dessin, mon test ne donne donc pas grand chose...

Remarque : jp ne sert à rien !
0
flo2704
 
Ben j'ai essayé avec new Appli().setVisible(true); et il a bien qu'une fenêtre qui s'affiche :) Si tu veux je peux t'envoyer le projet par mail :)
0
flo2704
 
Et encore une petite chose :) Avec le code que j'ai là, A-t-il moyen de mettre une taille au bouton ?
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Il me semble que BorderLayout n'accepte pas que l'on définisse une taille pour les composants, mais si mets null comme Layout tu peux utiliser setSize sans problème :

d.setLayout(null);
JButton btn = new JButton("Check");
btn.setSize(90,90);
d.add(btn);
0