Voici mon code et je galère dans la méthode vérifie...
ca complile et change bien de couluer mais par contre ne veut pas marquer le joueur qui a gagné qd il y a un vainqueur!
De plus lorsque l'on clic dans la premiere case [0][0] il reste bloque sur les croix/ronds et là par contre il compte....et des qu'il il y a un vainqueur c'est bon!!!
merci de m'aider!!!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class jeu extends JFrame implements ActionListener
{
JButton bouton[]=new JButton [100]; //Déclaration des bouttons (100 cases)
JMenuBar barre; // déclaration de la barre
JMenu fichier,help; // déclaration des menus
JMenuItem nouveau,quitter,apropos; //déclaration des sous menus
Icon iconO = new ImageIcon("iconO.png"); //déclaration de l'image du joueur rond
Icon iconX = new ImageIcon("iconX.png"); //déclaration de l'image du joueur croix
int tabe[][] = new int [10][10];
boolean tab [] = new boolean [100];
boolean qui=false;
String messageO = "Le joueur O à Gagné";
String messageX = "Le joueur X à Gagné";
public jeu()
{
Container c = getContentPane();
c.setLayout(new GridLayout(10,10,1,1));
barre = new JMenuBar();
fichier = new JMenu("Fichier");
nouveau = new JMenuItem("Nouveau"); nouveau.addActionListener(this);
quitter = new JMenuItem("Quitter"); quitter.addActionListener(this);
apropos = new JMenuItem("A propos"); apropos.addActionListener(this);
fichier.add(nouveau);
fichier.add(quitter);
help = new JMenu("Aide");
help.add(apropos);
barre.add(fichier);
barre.add(help);
setJMenuBar(barre);
for(int k=0;k<100;k++)
{
bouton[k]=new JButton();
bouton[k].addActionListener(this);
c.add(bouton[k]);
}
setResizable(false);
setSize(567,667);
setVisible(true);
addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
}
public void nouveauJeu()
{
for(int k=0;k<100;k++)
{
tab[k]=false;
bouton[k].setIcon(null);
}
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
tabe[i][j]=0;
}
}
public boolean verifie()
{
boolean a = false;
int i, j;
for (i = 0; i <= 10; i++)
{
for (j = 0; j < 10; j++)
{
if (tabe[i][j] == 1)
{
if ( (tabe[i + 1][j] == 1) && ( (i + 1) < 10))
if ( (tabe[i + 2][j] == 1) && ( (i + 2) < 10))
if ( (tabe[i + 3][j] == 1) && ( (i + 3) < 10)) {
a = true;
return (a);
}
if ( (tabe[i + 1][j + 1] == 1) && ( (i + 1) < 10) && ( (j + 1) < 10))
if ( (tabe[i + 2][j + 2] == 1) && ( (i + 2) < 10) && ( (j + 2) < 10))
if ( (tabe[i + 3][j + 3] == 1) && ( (i + 3) < 10) &&
( (j + 3) < 10)) {
a = true;
return (a);
}
if ( (tabe[i][j + 1] == 1) && ( (j + 1) < 10))
if ( (tabe[i][j + 2] == 1) && ( (j + 2) < 10))
if ( (tabe[i][j + 3] == 1) && ( (j + 3) < 10)) {
a = true;
return (a);
}
if ( (tabe[i - 1][j + 1] == 1) && ( (i - 1) >= 0) && ( (j + 1) < 10))
if ( (tabe[i - 2][j + 2] == 1) && ( (i - 2) >= 0) && ( (j + 2) < 10))
if ( (tabe[i - 3][j + 3] == 1) && ( (i - 3) >= 0) &&
( (j + 3) < 10)) {
a = true;
return (a);
}
}
else if (tabe[i][j] == 2) {
if ( (tabe[i + 1][j] == 2) && ( (i + 1) < 10))
if ( (tabe[i + 2][j] == 2) && ( (i + 2) < 10))
if ( (tabe[i + 3][j] == 2) && ( (i + 3) < 10)) {
a = true;
return (a);
}
if ( (tabe[i + 1][j + 1] == 2) && ( (i + 1) < 10) && ( (j + 1) < 10))
if ( (tabe[i + 2][j + 2] == 2) && ( (i + 2) < 10) && ( (j + 2) < 10))
if ( (tabe[i + 3][j + 3] == 2) && ( (i + 3) < 10) &&
( (j + 3) < 10)) {
a = true;
return (a);
}
if ( (tabe[i][j + 1] == 2) && ( (j + 1) < 10))
if ( (tabe[i][j + 2] == 2) && ( (j + 2) < 10))
if ( (tabe[i][j + 3] == 2) && ( (j + 3) < 10)) {
a = true;
return (a);
}
if ( (tabe[i - 1][j + 1] == 2) && ( (i - 1) >= 0) && ( (j + 1) < 10))
if ( (tabe[i - 2][j + 2] == 2) && ( (i - 2) >= 0) && ( (j + 2) < 10))
if ( (tabe[i - 3][j + 3] == 2) && ( (i - 3) >= 0) &&
( (j + 3) < 10)) {
a = true;
return (a);
}
}
return(a);
}
}
return (a);// en rajoutant celui-ci j'arrive a compiler....
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==nouveau)nouveauJeu();
if(e.getSource()==quitter)System.exit(0);
if(e.getSource()==apropos)
JOptionPane.showMessageDialog(null,"Crée le 13/09/2004\n by Nicolas POLMAN\nDESS CCI ","MORPION",JOptionPane.INFORMATION_MESSAGE);
for(int k=0;k<100;k++)
if(e.getSource()==bouton[k])
{
if(tab[k]==false)
{
tab[k]=true;
int i,j;
j=k%10;
i=((k-j)/10);
if(qui==false)
{
setTitle("Joueur O");
bouton[k].setIcon(iconX);
tabe[i][j]=1;
}
else
{
setTitle("Joueur X");
bouton[k].setIcon(iconO);
tabe[i][j]=2;
}
if(verifie()==true)
{ if(qui==true)
JOptionPane.showMessageDialog(null,messageO,"Gagné",JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null,messageX,"Gagné",JOptionPane.INFORMATION_MESSAGE);
if(JOptionPane.showConfirmDialog(null,"Vous voulez vous rejouer", "MORPION", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
nouveauJeu();
else
System.exit(0);
}
qui=!qui;
}
else
JOptionPane.showMessageDialog(null,"S.V.P choisissez une autre case.","Erreur",JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String []args)
{
new jeu();
}
}