Bonjour,
Débutant en Java, j'ai un projet a rendre qui consiste a reproduire le jeu de plateau Shing Shang.
Bref, tout va bien, mais lors de la construction du plateau, j'ai l'impression que le constructeur en question est bien trop gros. Mais je ne vois pas comment faire autremenent.
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
// Constructeur
public Plateau(Joueur J1, Joueur J2) {
    this.plateau = new Case[TAILLE][TAILLE];
    // Utilisation de deux boucles for afin de remplir a vide le reste des cases
    for(int i=0; i<TAILLE; i++) { // -> Num ligne
        for (int j = 0; j < TAILLE; j++) { // -> Num colonne
            if ((j != 0 || i == 4 || i == 5) && (j != 9 || i == 4 || i == 5)){ // Condition pour inclure les deux cases latérals
                // Joeuur 1
                if (i == 9 && j == 1)
                    plateau[i][j] = new Case(i, j, new Dragon(J1), plateau);
                else if (i == 9 && j == 8)
                    plateau[i][j] = new Case(i, j, new Dragon(J1), plateau);
                else if (i == 8 && j == 1)
                    plateau[i][j] = new Case(i, j, new Lion(J1), plateau);
                else if (i == 9 && j == 2)
                    plateau[i][j] = new Case(i, j, new Lion(J1), plateau);
                else if (i == 9 && j == 7)
                    plateau[i][j] = new Case(i, j, new Lion(J1), plateau);
                else if (i == 8 && j == 8)
                    plateau[i][j] = new Case(i, j, new Lion(J1), plateau);
                else if (i == 7 && j == 1)
                    plateau[i][j] = new Case(i, j, new Singe(J1), plateau);
                else if (i == 8 && j == 2)
                    plateau[i][j] = new Case(i, j, new Singe(J1), plateau);
                else if (i == 9 && j == 3)
                    plateau[i][j] = new Case(i, j, new Singe(J1), plateau);
                else if (i == 9 && j == 6)
                    plateau[i][j] = new Case(i, j, new Singe(J1), plateau);
                else if (i == 8 && j == 7)
                    plateau[i][j] = new Case(i, j, new Singe(J1), plateau);
                else if (i == 7 && j == 8)
                    plateau[i][j] = new Case(i, j, new Singe(J1), plateau);
                    // Joeuur 2
                else if (i == 0 && j == 1)
                    plateau[i][j] = new Case(i, j, new Dragon(J2), plateau);
                else if (i == 0 && j == 8)
                    plateau[i][j] = new Case(i, j, new Dragon(J2), plateau);
                else if (i == 1 && j == 1)
                    plateau[i][j] = new Case(i, j, new Lion(J2), plateau);
                else if (i == 0 && j == 2)
                    plateau[i][j] = new Case(i, j, new Lion(J2), plateau);
                else if (i == 1 && j == 8)
                    plateau[i][j] = new Case(i, j, new Lion(J2), plateau);
                else if (i == 0 && j == 7)
                    plateau[i][j] = new Case(i, j, new Lion(J2), plateau);
                else if (i == 0 && j == 3)
                    plateau[i][j] = new Case(i, j, new Singe(J2), plateau);
                else if (i == 1 && j == 2)
                    plateau[i][j] = new Case(i, j, new Singe(J2), plateau);
                else if (i == 2 && j == 1)
                    plateau[i][j] = new Case(i, j, new Singe(J2), plateau);
                else if (i == 0 && j == 6)
                    plateau[i][j] = new Case(i, j, new Singe(J2), plateau);
                else if (i == 1 && j == 7)
                    plateau[i][j] = new Case(i, j, new Singe(J2), plateau);
                else if (i == 2 && j == 8)
                    plateau[i][j] = new Case(i, j, new Singe(J2), plateau);
                else
                    plateau[i][j] = new Case(i, j, plateau);
            }
        }
    }
    // Portail bleus
    plateau[8][4] = new Case(8, 4, new Portail(1, J1), plateau);
    plateau[8][5] = new Case(8, 5, new Portail(2, J1), plateau);
    // Portail bleus
    plateau[1][4] = new Case(1, 4, new Portail(1, J2), plateau);
    plateau[1][5] = new Case(1, 5, new Portail(2, J2), plateau);
}
Deuxième question : Je définie la position de la case au niveau du plateau (plateau[8][4]) mais aussi dans l'objet Case (new Case(8, 4...) ), est-ce utile ?
Pour moi oui car pour récupérer le pion qui est a un emplacement [X][Y], il faut les 'coordonnées' du tableau. Et pour savoir quel pion est a quel case, il faut aussi les coordonnées dans la Case()

Am I Right ?
Merci