Probleme instance java
tatata
-
tatata -
tatata -
Bonjour,
Je suis debutant en Java.
Dans une class je j'instancie ma classe de facon a crée une grille , avec
Grilles a = new Grilles();
J'ai dans le package une autre class (etudesgrille ) qui est sensé faire des transformations sur ma grille a, j'ai dans cette classe une fonction
score ( EtudeGrille G , int sens , int colonne, int ligne).
Et lorsque je veux faire Etudesgrilles. score (a, 1,1,1);
on me dit que je donnes etudesrilles alors que je devrais donner Grilles. Je comprend l'erreur mais cmt faire pour faire passer de la grille a instancé en debut dans ma class EtudeGrille!
J'espere avoir suffisement exposé les données pour que vous m'aidiez. Merci beaucoup pour votre aide.
Je suis debutant en Java.
Dans une class je j'instancie ma classe de facon a crée une grille , avec
Grilles a = new Grilles();
J'ai dans le package une autre class (etudesgrille ) qui est sensé faire des transformations sur ma grille a, j'ai dans cette classe une fonction
score ( EtudeGrille G , int sens , int colonne, int ligne).
Et lorsque je veux faire Etudesgrilles. score (a, 1,1,1);
on me dit que je donnes etudesrilles alors que je devrais donner Grilles. Je comprend l'erreur mais cmt faire pour faire passer de la grille a instancé en debut dans ma class EtudeGrille!
J'espere avoir suffisement exposé les données pour que vous m'aidiez. Merci beaucoup pour votre aide.
A voir également:
- Probleme instance java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
4 réponses
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.
/**
*
*/
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
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...