2025-11-22 11:56:51 -05:00
|
|
|
|
package fr.iut_fbleau.Avalam.logic;
|
|
|
|
|
|
|
|
|
|
|
|
import fr.iut_fbleau.Avalam.Color;
|
|
|
|
|
|
import fr.iut_fbleau.Avalam.Tower;
|
2025-11-25 16:02:23 -05:00
|
|
|
|
|
2025-11-22 11:56:51 -05:00
|
|
|
|
import java.io.*;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2025-11-25 16:02:23 -05:00
|
|
|
|
* Charge un plateau Avalam depuis un fichier texte.
|
|
|
|
|
|
* Format attendu : matrice 9×9 de 0,1,2 séparés par virgule.
|
2025-11-22 11:56:51 -05:00
|
|
|
|
*/
|
|
|
|
|
|
public class BoardLoader {
|
|
|
|
|
|
|
2025-11-25 16:02:23 -05:00
|
|
|
|
public static Tower[][] loadFromFile(String file) {
|
2025-11-22 11:56:51 -05:00
|
|
|
|
Tower[][] grid = new Tower[9][9];
|
|
|
|
|
|
|
2025-11-25 16:02:23 -05:00
|
|
|
|
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
|
2025-11-22 11:56:51 -05:00
|
|
|
|
|
|
|
|
|
|
String line;
|
|
|
|
|
|
int row = 0;
|
|
|
|
|
|
|
|
|
|
|
|
while ((line = br.readLine()) != null && row < 9) {
|
|
|
|
|
|
|
2025-11-25 16:02:23 -05:00
|
|
|
|
String[] vals = line.split(",");
|
2025-11-22 11:56:51 -05:00
|
|
|
|
|
|
|
|
|
|
for (int col = 0; col < 9; col++) {
|
2025-11-25 16:02:23 -05:00
|
|
|
|
int v = Integer.parseInt(vals[col].trim());
|
2025-11-22 11:56:51 -05:00
|
|
|
|
|
2025-11-25 16:02:23 -05:00
|
|
|
|
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;
|
|
|
|
|
|
}
|
2025-11-22 11:56:51 -05:00
|
|
|
|
}
|
|
|
|
|
|
row++;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return grid;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|