Bonjour à toutes et à tous,

Dans le but de mes études, je dois développer en JAVA un jeu de Bataille Navale ..

Cependant je bloque sur une méthode. Il s'agit d'une méthode qui doit retourner dans un tableau de type Case les cases voisines à la case en question.

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
	Case[] voisins()
	{
		if ( abcisse>'a' && abcisse<'h' && ordonnee>1 && ordonnee<10)
		{
			Case[] v = new Case[4];
			v[0]=new Case((char)(this.abcisse-1),this.ordonnee);
			v[1]=new Case((char)(this.abcisse+1),this.ordonnee);
			v[2]=new Case((char)(this.abcisse),this.ordonnee-1);
			v[3]=new Case((char)(this.abcisse),this.ordonnee+1);
 
		}
		if ( abcisse=='a' && ordonnee>1 && ordonnee<10)
		{
			Case[] v = new Case[3];
			v[0]=new Case((char)(this.abcisse+1),this.ordonnee);
			v[1]=new Case((char)(this.abcisse),this.ordonnee-1);
			v[2]=new Case((char)(this.abcisse),this.ordonnee+1);
 
		}
		if ( abcisse=='h' && ordonnee>1 && ordonnee<10)
		{
			Case[] v = new Case[3];
			v[0]=new Case((char)(this.abcisse-1),this.ordonnee);
			v[1]=new Case((char)(this.abcisse),this.ordonnee-1);
			v[2]=new Case((char)(this.abcisse),this.ordonnee+1);
 
		}
		if ( abcisse=='a' && ordonnee==1)
		{
			Case[] v = new Case[2];
			v[0]=new Case((char)(this.abcisse),this.ordonnee-1);
			v[1]=new Case((char)(this.abcisse+1),this.ordonnee);
 
		}
		if ( abcisse=='a' && ordonnee==10)
		{
			Case[] v = new Case[2];
			v[0]=new Case((char)(this.abcisse),this.ordonnee+1);
			v[1]=new Case((char)(this.abcisse+1),this.ordonnee);
 
		}
		if ( abcisse=='h' && ordonnee==1)
		{
			Case[] v = new Case[2];
			v[0]=new Case((char)(this.abcisse),this.ordonnee-1);
			v[1]=new Case((char)(this.abcisse-1),this.ordonnee);
 
		}
		if ( abcisse=='h' && ordonnee==10)
		{
			Case[] v = new Case[2];
			v[0]=new Case((char)(this.abcisse),this.ordonnee-1);
			v[1]=new Case((char)(this.abcisse-1),this.ordonnee);
 
		}
		return v;
Donc par conséquent, lorsque dans mon Main j'utilise cette méthode via :

c.voisins();

Elle me génère un tableau de taille variable selon la position de la case. Or, le tableau retourné par cette méthode n'est pas stocké et donc pas conséquent non-réutilisable.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Main 
{
	public static void main (String[] arqs)
	{	
		Case f2 = new Case('f', 2);
		System.out.println("Jouxte : "+c1.Jouxte(f2));	
 
		f2.voisins();
		for (int i=0;i<v.length;i++)
		{
			System.out.println(v[i].abcisse + v[i].ordonnee);
		}
	}
}
Par exemple ici, le main ne reconnait pas v généré par la méthode voisins().

Est ce qu'il faudrait que je stock le tableau généré par la méthode elle même ?! Si oui, comment ?

Merci d'avance pour votre aide