Java

Fermé
flo2704 - 4 juin 2012 à 21:31
 flo2704 - 5 juin 2012 à 22:31
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
4 juin 2012 à 21:33
Il va falloir être un peu plus concret dans tes attentes, parce que tu as pu commencer de 1000 manières différentes !
0
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
4 juin 2012 à 21:50
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
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
5 juin 2012 à 18:40
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
Ha super un grand merci :)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
5 juin 2012 à 20:21
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
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
5 juin 2012 à 21:15
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
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
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
5 juin 2012 à 21:46
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