Jeu jouable avec fin de parti

This commit is contained in:
2025-11-25 16:02:23 -05:00
parent d23aeb266f
commit 1921b523c6
11 changed files with 537 additions and 913 deletions

View File

@@ -2,51 +2,35 @@ package fr.iut_fbleau.Avalam.logic;
import fr.iut_fbleau.Avalam.Color;
import fr.iut_fbleau.Avalam.Tower;
import java.io.*;
/**
* La classe <code>BoardLoader</code> est responsable du chargement d'un plateau Avalam
* depuis un fichier texte externe (généralement Plateau.txt).
*
* Le fichier doit contenir une matrice 9×9 de valeurs numériques séparées par des virgules :
* - 0 : case vide (trou)
* - 1 : pion appartenant au joueur COLOR1 (Jaune)
* - 2 : pion appartenant au joueur COLOR2 (Rouge)
*
* Aucun contrôle de cohérence avancé n'est effectué, le chargeur se contente
* dinterpréter les valeurs comme demandé.
*
* @author
* @version 1.0
* Charge un plateau Avalam depuis un fichier texte.
* Format attendu : matrice 9×9 de 0,1,2 séparés par virgule.
*/
public class BoardLoader {
/**
* Charge un plateau Avalam depuis un fichier.
*
* @param path chemin du fichier plateau.
* @return un tableau 9×9 contenant des objets <code>Tower</code> ou <code>null</code>.
*/
public static Tower[][] loadFromFile(String path) {
public static Tower[][] loadFromFile(String file) {
Tower[][] grid = new Tower[9][9];
try (BufferedReader br = new BufferedReader(new FileReader(new File(path)))) {
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
int row = 0;
while ((line = br.readLine()) != null && row < 9) {
String[] parts = line.split(",");
String[] vals = line.split(",");
for (int col = 0; col < 9; col++) {
int v = Integer.parseInt(parts[col]);
int v = Integer.parseInt(vals[col].trim());
// Interprétation des valeurs
if (v == 1) grid[row][col] = new Tower(Color.COLOR1);
else if (v == 2) grid[row][col] = new Tower(Color.COLOR2);
else grid[row][col] = null; // Case vide
switch (v) {
case 1 -> grid[row][col] = new Tower(Color.YELLOW);
case 2 -> grid[row][col] = new Tower(Color.RED);
default -> grid[row][col] = null;
}
}
row++;
}