miblack
Messages postés6Date d'inscriptionmardi 21 septembre 2010StatutMembreDernière intervention 7 juin 2011
-
7 juin 2011 à 19:38
Utilisateur anonyme -
7 juin 2011 à 21:46
/**
*
* @param gr La grille qu'on veux initialiser (de taille n*n)
* @param n nombre de boules dans 1 coté
*/
public void initialisationGrilleValeurQuart(Grille gr, Integer n) {
float nbCasetemporaire = n * n;
int val = 1;
int i = 0;
int coll = 0;
int ligne = 0;
if (n <= 5) {
System.out.println("Erreur : Initialisation a 6");
n = 6;
nbCasetemporaire = 6 * 6;
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201211 7 juin 2011 à 20:23
salut,
a priorie ton gr.getLesCases()[81] est null ... mais comme on ne voit pas sont initialisation, on ne peut confirmer... ;o) il est probable que tu n'initialises pas la derniere valeur de ton tableau...
ceci dit pourquoi n utilises tu pas un tableau à 2 dimentions, cela serai plus lisible non??
PS : réserves les variables d'une lettre pour les boucles ;o) c'est plus clair...
miblack
Messages postés6Date d'inscriptionmardi 21 septembre 2010StatutMembreDernière intervention 7 juin 2011 7 juin 2011 à 19:40
Si j'oublie une des 2 méthodes ...
/**
*
* @param gr La grille qu'on veux afficher (de taille n*n)
* @param n nombre de boules dans 1 coté
*/
public static void affichage(Grille gr, Integer n) {
for (int i = 0; i < n; i++) {
System.out.print(" | " + i + "");
}
System.out.print("\n --------------------------------------------\n");
for (int i = 0; i < gr.getLesCases().length; i++) {
if (i % n == 0 && i != 0) {
System.out.print(" |\n");
}
miblack
Messages postés6Date d'inscriptionmardi 21 septembre 2010StatutMembreDernière intervention 7 juin 2011 7 juin 2011 à 21:13
En fait lesCases[80] ne s'initialisais pas a cause d'une erreur dans la condition du for
Voila le code qui fonctionne :
/**
*
* @param gr
* La grille qu'on veux initialiser (de taille n*n)
* @param n
* nombre de boules dans 1 coté
*/
public void initialisationGrilleValeurQuart(Grille gr, Integer n) {
float nbCasetemporaire = n * n;
int val = 1;
int i = 0;
int coll = 0;
int ligne = 0;
if (n <= 5) {
System.out.println("Erreur : Initialisation a 6");
n = 6;
nbCasetemporaire = 6 * 6;
}
while (Math.round(nbCasetemporaire) >= 1 ) {
for (int j = 0; (j <= Math.round(nbCasetemporaire / 4) && i<n*n);j++) {
lesCases[i] = new Case(val, null, new Position(ligne, coll));
i = i + 1;
coll = coll + 1;
if (coll >= n && ligne != n + 1) {
coll = 0;
ligne++;
}
}
val++;
nbCasetemporaire = nbCasetemporaire - nbCasetemporaire / 4;
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?