Boucle et affichage JAVA

jedwed123 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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);
}

}
}
A voir également:

5 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Le forum "Programmation" sera plus approprié.
0
BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   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
arth Messages postés 9374 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
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
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