Simon, besoin d'un coup de main svp

Signaler
-
 Toshiba1996 -
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

Messages postés
33468
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 septembre 2021
351
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.



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
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)