Boucle et affichage JAVA

jedwed123 Messages postés 4 Statut Membre -  
 danimo -
Bonjour,
J'ai un souci concernant mon oligo.
En effet
*j'ai un message d'erreur : java.lang.ArrayIndexOutOfBoundsException: 3
(cela concerne la taille de ma colonne mais je ne vois pas ou est l'erreur)
*je n'arrive pas à afficher ma grille en un seul bloc (j'ai les lignes qui s'affiche puis je doit cliquer sur OK pour que le contenu d'une case s'affiche et ainsi de suite)

je voudrais
1 2 3
---------------
1 | -| - | - |
---------------
2 | -| - | - |
---------------
3 | -| - | - |

Voiçi mon algo

import javax.swing.JOptionPane;
import static java.lang.System.*;
import java.util.Scanner;

public class essai{
public static void main(String[] args){
char d = 'X';
char e = 'O';
char c = '-';

//déclaration d'un tableau de chaine de caractère
char[][] grille = new char[3][3];
// créer un tableau rempli du caractère '-'
for(int i=0; i<grille.length; i++){
for(int j=0; j<grille[0].length;j++){
grille[i][j] = c;
}
}
}
static void affichergrille(char [][] t){

JOptionPane.showMessageDialog
(null,
"1\t\t\t 2\t\t\t 3\t\t\t \n ------------\n",
"Tic Tac Toe",JOptionPane.INFORMATION_MESSAGE);

for (int i=1; i<=t.length; i++){//on affiche les lignes
//System.out.println (barre);
JOptionPane.showMessageDialog
(null,
i+" | "+" | "+" | "+" | ",
"Tic Tac Toe",JOptionPane.INFORMATION_MESSAGE);

for(int j=1;j<=t[1].length;j++) //on affiche les colonnes

{
//System.out.print(" "+t[i][j]+" "); //on laisse un espace entre chaques cotés du caractère pour plus de lisibilité
//System.out.print("|");
JOptionPane.showMessageDialog
(null,
" "+t[i][j],
"Tic Tac Toe",JOptionPane.INFORMATION_MESSAGE);
}

}
}
Configuration: Windows XP
Firefox 3.0.16

5 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Le forum "Programmation" sera plus approprié.
    0
  2. BadGuitarist Messages postés 373 Statut Membre 27
     
    Bonsoir Jedwed123,

    Pour la question 2, cela me semble normal que ton affichage soit interrompu par une boite de dialogue puisque tu as programmé cela :
    JOptionPane.showMessageDialog(...);
    0
  3. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 293
     
    Je confirme :)

    En revanche est-ce qu'il y a là tout le code?

    Et pour le OutOfBound, non je dirais qu'il a raison, il te dit 3, or un tableau commence à 0 donc 0-1-2 et si tu cherches à faire un tab[3] tu vas avoir des problèmes ...
    0
  4. tarek_dotzero Messages postés 834 Statut Membre 122
     
    L'erreur pour le Out Of Bound est sur la ligne

    for(int j=1;j<=t[1].length;j++) //on affiche les colonnes 


    Les indices comme,cent de 0 à lenght - 1.

    et JOptionPane dans une boucle c'est pas correct et donnera pas le résultat attendu, utilise simplement le System.out.print

    Bon Courage
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. danimo
     
    Salut,

    Et puis attention: tu déclares ton tableau "grille" et ensuite tu le traites sous le nom "t" et en plus dans des boucles:

    for (int i=1; i<=t.length; i++){//on affiche les lignes 

    et:

    for(int j=1;j<=t[1].length;j++) //on affiche les colonnes  (et ici pourquoi <=t[1].length ?)


    donc en ignorant le 1er élément, et jusqu'à la longueur 3 (<=t.length)

    Ce qui montre que le bout de code que tu nous donnes ne peut correspondre au code que tu utilises...

    Cordialement,

    Dan
    0