Bonjour;
Voilà je suis entrain de construire un petit jeu en JAVA;
Voici le code source de la classe Grille:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package Jeu;
 
public class Grille {
	//attributs
	private int nblig;
	private int nbcol;
	private char [][] grille;
 
	//constructeur
	public Grille (int n,int p){
		nblig=n;
		nbcol=p;
		grille= new char [nblig][nbcol];
 
		for(int i=0;i<nblig;i++){
			for(int j=0;j<nbcol;j++){
				grille[i][j]='o';
			}
		}
	}
 
	//accesseurs 
	public char getCase(int l, int c){
		return grille [l-1][c-1];
	}
 
 
	//methodes
 
	public void afficher (){
		System.out.println();
		for(int i=0;i<nblig;i++){
			for(int j=0;j<nbcol;j++){
				System.out.print("|" +grille[i][j]);
			}
			System.out.println("|");
		}
		System.out.println();
 
	}
 
	public void placerJ (int l,int c, char t){
		l=l-1;
		c=c-1;
		if(l<0 || c<0 || l>nblig || c>nbcol){
			System.out.println("Erreur, vous n'êtes pas sur la grille");
			return;
		}
		if(grille [l][c]=='o'){
			grille [l][c]= t;
		}
		else {
			System.out.println("Erreur de placement");
 
		}
	}
 
	public void deplacerHaut (){
		char tmp;
		for(int i=0;i<nblig;i++){
			for(int j=0;j<nbcol;j++){
				if(grille [i][j]=='J'){
					if(i-1>=0 && grille[i-1][j]=='o'){
						tmp=grille[i][j];
						grille[i][j]='o';
						grille[i-1][j]=tmp;
					}
				}
 
			}
 
		}
	}
 
	public void deplacerBas (){
		char tmp;
		for(int i=0;i<nblig;i++){
			for(int j=0;j<nbcol;j++){
 
					if(i+1<nblig && grille[i+1][j]=='o'){
						if(grille [i][j]=='J'){
						tmp=grille[i][j];
						grille[i][j]='o';
						grille[i+1][j]=tmp;
					}
				}	
			}
 
		}
	}
 
	public void deplacerDroite (){
		char tmp;
		for(int i=0;i<nblig;i++){
			for(int j=0;j<nbcol;j++){
				if(grille [i][j]=='J'){
					if(j+1<=nbcol && grille[i][j+1]=='o'){
						tmp=grille[i][j];
						grille[i][j+1]=tmp;
						grille[i][j]='o';
 
					}
				}	
			}
 
		}
	}
 
	public void deplacerGauche (){
		char tmp;
		for(int i=0;i<nblig;i++){
			for(int j=0;j<nbcol;j++){
				if(grille [i][j]=='J'){
					if(j-1>=0 && grille[i][j-1]=='o'){
						tmp=grille[i][j];
						grille[i][j]='o';
						grille[i][j-1]=tmp;
					}
				}	
			}
 
		}
	}
}
Voici celui de la classe main:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package Jeu;
import java.util.*;
 
public class main {
 
	public static void main (String [] args) {
		Grille g1= new Grille (5,5);
		System.out.println("J = Joueur\nO = Objet\nM = Monstre\n- = Vide\n");
		g1.placerJ(3, 2, 'J');
 
 
		g1.afficher();
 
		System.out.println(g1.getCase(3,2));
 
		g1.deplacerHaut();
		g1.afficher();
 
		g1.deplacerGauche();
		g1.afficher();
 
		g1.deplacerBas();
		g1.afficher();
 
		g1.deplacerDroite();
		g1.afficher();
 
 
 
	}
 
}
Les deux méthodes deplacerBas et deplacerDroite ne marchent pas j'ai toujours ce résultat:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Jeu.Grille.deplacerDroite(Grille.java:97)
at Jeu.main.main(main.java:25)


Merci d'avance pour vos suggestions