A voir également:
- Probleme instance java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
4 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
9 janv. 2013 à 19:04
9 janv. 2013 à 19:04
Ta fonction devrait plutôt être ceci je pense :
score (Grille G , int sens , int colonne, int ligne)
score (Grille G , int sens , int colonne, int ligne)
Merci pour ta reponse, j'ai essayé et on me renvoie comme erreur,
non-static method lecture_grille(Grilles,int,int,int) cannot be referenced from a static context.
Pourtant lecture grille n'est pas une methode static... Je comprend pas tres bien d'ou vient l'erreur.
non-static method lecture_grille(Grilles,int,int,int) cannot be referenced from a static context.
Pourtant lecture grille n'est pas une methode static... Je comprend pas tres bien d'ou vient l'erreur.
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
9 janv. 2013 à 19:30
9 janv. 2013 à 19:30
"lecture grille n'est pas une methode static", c'est bien le problème, il faut qu'elle soit static si tu l'utilises dans un contexte static (dans le main par exemple)
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
9 janv. 2013 à 19:47
9 janv. 2013 à 19:47
Dans ce cas il faut que tu utilises des objets mais là je navigue à l'aveugle, si tu me donnes ton code je te montrerai toutes tes erreurs en une seule fois, plutôt que de les deviner au fur et à mesure.
/** * */ public class Etude_grille1 { int colonne_prec = 0; int ligne_prec = 0; int longueur_chaine = 0; int monotonie_chaine = 0; int monotonie_case = 0; static int score = 0; int tableau_score[][]; int grille[][]; int GrillesJeux[][]; Etude_grille1() { GrillesJeux = new int[11][11]; } public static void lecture_grille(Grilles G,int ligne, int colonne, int sens) { int [][] GrillesJeux = G.getGrille(); // permet de passer d'une case à l'autre if (sens != 3) { if (verification(GrillesJeux,ligne,colonne+1) == true) { // on trouve la case d'apres qui est bonne comparaison(GrillesJeux,ligne, colonne, ligne_prec, colonne_prec); // on la compare a la precedente, et on verifie qu'on reviens pas sur case preceden } lecture_grille(G,ligne, colonne + 1,1); } else{ ajoutscore(longueur_chaine); longueur_chaine =0 ; // FIN DU JEU!!! } } public static void Afficherscore(int score){ System.out.print("Votre score est de "+score); } public static void comparaison( int ligne, int colonne, int ligne_prec, int colonne_prec) {// pour comparer une case a l'autre if (GrillesJeux[ligne][colonne] < grille[ligne_prec][colonne_prec]) { monotonie_case = 1; // depart d'une chaine, ou on continue une chaine, donc pas de "nouvelle_chaine ; } if (GrillesJeux[ligne][colonne] > grille[ligne_prec][colonne_prec]) { monotonie_case = 0; } if (monotonie_case == monotonie_chaine) // Si c'est la "meme" monotonie alors alors on { monotonie_chaine = monotonie_case; } else { ajoutscore(longueur_chaine); longueur_chaine = 0; } } public static int ajoutscore(int longueur_chaine) { tableau_score = new int[10][10]; score = tableau_score[0][longueur_chaine]; return score; } public static boolean verification(int GrilleJeu[][],int ligne, int colonne) { // permet de voir si c'est une case de la grille ou non if (GrilleJeu[ligne][colonne] == 1) { return true; } else { return false; } } }
Et dans le main j'appelle ce dont on parlais tt a l'h:
Etude_grille1.lecture_grille(a,1,1,1);
j'ai des erreurs dans ajoutscore, et comparaison. ( parotut ou j'ai des variable globale). Dis moi si tu n'as pas assez d'info
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
9 janv. 2013 à 20:14
9 janv. 2013 à 20:14
De toute évidence tu as un constructeur pour Etude_grille1 donc tu peux enlever les static et utiliser un objet d'Etude_grille1 dans ton main :
Mais je n'arrive pas du tout à comprendre ce que tu veux faire, en tout cas l'utilisation des variables globales est certainement aberrante dans ton code, elles sont toujours à éviter au maximum et là tu en as partout ce qui est certainement archi-faux, il faudrait savoir à quoi tout ceci sert, mais ça parait très mal parti !
Etude_grille1 eg = new Etude_grille1(); eg.lecture_grille(a,1,1,1);
Mais je n'arrive pas du tout à comprendre ce que tu veux faire, en tout cas l'utilisation des variables globales est certainement aberrante dans ton code, elles sont toujours à éviter au maximum et là tu en as partout ce qui est certainement archi-faux, il faudrait savoir à quoi tout ceci sert, mais ça parait très mal parti !
/* public class Etude_grille1 { int colonne_prec = 0; int ligne_prec = 0; int longueur_chaine = 0; int monotonie_chaine = 0; int monotonie_case = 0; static int score = 0; int tableau_score[][]; int grille[][]; int GrillesJeux[][]; Etude_grille1() { GrillesJeux = new int[11][11]; } public static void lecture_grille(Grilles G,int ligne, int colonne, int sens) { int [][] GrillesJeux = G.getGrille(); // permet de passer d'une case à l'autre if (sens != 3) { if (verification(GrillesJeux,ligne,colonne+1) == true) { // on trouve la case d'apres qui est bonne comparaison(GrillesJeux,ligne, colonne, ligne_prec, colonne_prec); // on la compare a la precedente, et on verifie qu'on reviens pas sur case preceden } lecture_grille(G,ligne, colonne + 1,1); } if (sens != 4) { if (verification(GrillesJeux,ligne,colonne+1) == true) { // on trouve la case d'apres qui est bonne comparaison(ligne, colonne, ligne_prec, colonne_prec); // on la compare a la precedente, et on verifie qu'on reviens pas sur case precedente } lecture_grille(G,ligne + 1, colonne, 2); } if (sens != 2) { if (verification(GrillesJeux,ligne,colonne+1) == true) { // on trouve la case d'apres qui est bonne comparaison(ligne, colonne, ligne_prec, colonne_prec); // on la compare a la precedente, et on verifie qu'on reviens pas sur case precedente lecture_grille(G,ligne - 1, colonne, 4); } } if (sens != 1) { if (verification(GrilleJeu,ligne,colonne+1) == true) { // on trouve la case d'apres qui est bonne comparaison(ligne, colonne, ligne_prec, colonne_prec); // on la compare a la precedente, et on verifie qu'on reviens pas sur case precedente lecture_grille(G,ligne , colonne-1, 3); // en meme temps on envoie les coordoonné pour savoir si c'est dans la meme sequence ou non } } else{ ajoutscore(longueur_chaine); longueur_chaine =0 ; // FIN DU JEU!!! } } public static void Afficherscore(int score){ System.out.print("Votre score est de "+score); } public static void comparaison( int ligne, int colonne, int ligne_prec, int colonne_prec) {// pour comparer une case a l'autre if (GrillesJeux[ligne][colonne] < grille[ligne_prec][colonne_prec]) { monotonie_case = 1; // depart d'une chaine, ou on continue une chaine, donc pas de "nouvelle_chaine ; } if (GrillesJeux[ligne][colonne] > grille[ligne_prec][colonne_prec]) { monotonie_case = 0; } if (monotonie_case == monotonie_chaine) // Si c'est la "meme" monotonie alors alors on { monotonie_chaine = monotonie_case; } else { ajoutscore(longueur_chaine); longueur_chaine = 0; } } public static int ajoutscore(int longueur_chaine) { tableau_score = new int[10][10]; score = tableau_score[0][longueur_chaine]; return score; } public static boolean verification(int GrilleJeu[][],int ligne, int colonne) { // permet de voir si c'est une case de la grille ou non if (GrilleJeu[ligne][colonne] == 1) { return true; } else { return false; } } }
Je n'avais pas tout mlis mon code pour ne pas te surchargé.
Je vais utilisé des methodes recursives, en faisant lecture_grille(G,ligne + 1, colonne, 2); etc... je veux creer des variables qui resteront vraies meme si j'appelle d'autre fonction. Parce exemple longueurchaine ne peut pas revenir a 0, elle doit rester tout le temps a la valeur que j'increment au fur et a mesure.
Je ne comprend pas pourquoi je peux enlever les static si je fais ce que tu dis...