Simon, besoin d'un coup de main svp

Toshiba1996 - 9 mai 2015 à 17:10
 Toshiba1996 - 9 mai 2015 à 17:25
Bonjour, je suis étudiant en Terminale S, spécialité ISN et pour le projet final mes amis et moi-même avons décidé de faire une compilation de mini-jeux.
Mais, on a un soucis avec le Simon,( jeux de mémoire).
import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.Random;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

public class Simon extends JFrame {

static int Pick;

public static void main(String[] args) {

JFrame frame = new JFrame("Simon");

ArrayList<Integer> Computer = new ArrayList<Integer>();

ArrayList<Integer> Player = new ArrayList<Integer>();

int CompPick;

Random gen = new Random();

frame.setSize(206, 232);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setResizable(false);

frame.setLayout(null);

final JButton BlueButton = new JButton();

BlueButton.setBounds(0, 0, 100, 100);

BlueButton.setBackground(Color.blue);

JButton RedButton = new JButton();

RedButton.setBounds(100, 0, 100, 100);

RedButton.setBackground(Color.red);

final JButton YellowButton = new JButton();

YellowButton.setBounds(100, 100, 100, 100);

YellowButton.setBackground(Color.yellow);

final JButton GreenButton = new JButton();

GreenButton.setBounds(0, 100, 100, 100);

GreenButton.setBackground(Color.green);

frame.add(BlueButton);

frame.add(RedButton);

frame.add(YellowButton);

frame.add(GreenButton);

frame.setVisible(true);

BlueButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

{

Pick = 0;

}

});

RedButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

{

Pick = 1;

}

});

YellowButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

{

Pick = 2;

}

});

GreenButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

{

Pick = 3;

}

});

do {

CompPick = gen.nextInt(4);

Computer.add(CompPick);

for (int i = 0; i < Computer.size(); i++) {

if (Computer.get(i) == 0) { //Blue Button

BlueButton.doClick(1000);

try {

Thread.currentThread().sleep(1000);

}

catch (InterruptedException e) {

e.printStackTrace();

}

} else

if (Computer.get(i) == 1) {

RedButton.doClick(1000);

try {

Thread.currentThread().sleep(1000);

}

catch (InterruptedException e) {

e.printStackTrace();

}

} else

if (Computer.get(i) == 2) {

YellowButton.doClick(1000);

try {

Thread.currentThread().sleep(1000);

}

catch (InterruptedException e) {

e.printStackTrace();

}

} else

if (Computer.get(i) == 3) {

GreenButton.doClick(1000);

try {

Thread.currentThread().sleep(1000);

}

catch (InterruptedException e) {

e.printStackTrace();

}

}

}

Player.add(Pick);

for (int j = 0; j < Computer.size(); j++) {

if (Computer.get(j) != Player.get(j)) {

JOptionPane.showMessageDialog(null, "You Lose");

}

}

} while (Pick == CompPick);

}

public boolean Compare(ArrayList Player, ArrayList Computer) {

boolean flag = false;

for (int i = 0; i < Player.size(); i++) {

if (Player.get(i) == Computer.get(i)) {

flag = true; // will be set if any are the same

}

}

return flag;

}

}


On a fait ca au début mais la couleur ne s'est jamais arreter, donc on a fait ca, mais ca ne marche pas..

import java.util.ArrayList;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.event.*;

public class simonmon extends JFrame implements ActionListener{

private ArrayList<Integer> Computer;
private ArrayList<Integer> Joueur;
private JButton BlueButton;
private JButton GreenButton;
private JButton RedButton;
private JButton YellowButton;

// Tout les objets dont on a besoin

public simonmon() {
super("Simon");
affichage();
initalisation();
affichageSerie();
}

private void affichage(){
this.setSize(206, 232);
BlueButton = new JButton();
BlueButton.addActionListener(this);
GreenButton = new JButton();
GreenButton.addActionListener(this);
RedButton = new JButton();
RedButton.addActionListener(this);
YellowButton = new JButton();
YellowButton.addActionListener(this);

// Tout les composants graphiques
}

private void initalisation() {

Random gen = new Random();
int nbCouleurs = 5;
//On veut 5 couleurs
int couleur;
for(int i = 0; i<nbCouleurs;i++){
couleur = gen.nextInt(4);
Computer.add(couleur);
}
//La liste est chargée
}

private void affichageSerie() {
for (int i = 0; i < Computer.size(); i++) {

if (Computer.get(i) == 0) {
BlueButton.doClick(1000);
try {
Thread.currentThread().sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
else{

if (Computer.get(i) == 1){
GreenButton.doClick(1000);
try {
Thread.currentThread().sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}

else{

if (Computer.get(i) == 2){
RedButton.doClick(1000);
try {
Thread.currentThread().sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}

else{

if (Computer.get(i) == 3) {
YellowButton.doClick(1000);
try {
Thread.currentThread().sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}

}
}
}
}

}

public static void main(String[] args) {
new simonmon();
}

}

Voila, si vous avez la gentillesse de m'aider, je vous remercie d'avance !

3 réponses

jordane45 Messages postés 36349 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 septembre 2022 350
9 mai 2015 à 17:14
Bonjour,

le "ca ne marche pas.. " ... n'indique en rien le souci rencontré....
Merci de détailler le problème constaté....
de nous indiquer les éventuels messages d'erreurs affichés .. le comportement obtenu et le comportement attendu ....

Il est rare que l'on s'amuse à coller les codes fournis chez nous pour les tester .... il te faut donc exprimer de façon claire et concise ton problème.



0
Dans le premier programme, le programme affiche 4couleurs dans un tableau, comme prévu, les couleurs se suivent, comme prébu, mais ne s'arrete jamais, j'aimerai pouvoir arreter les couleurs
0
Ensuite, dans le second programme rien ne s'affiche (en fenêtre) et j'ai comme message d'erreur :
Exception in thread "simon2" java.lang.NullPointerException
at main.initalisation(main.java:49)
at main.<init>(main.java:23)
at main.main(main.java:110)
0