package fr.iut_fbleau.Avalam; import fr.iut_fbleau.GameAPI.AbstractBoard; import fr.iut_fbleau.GameAPI.AbstractPly; import fr.iut_fbleau.GameAPI.Player; import fr.iut_fbleau.GameAPI.Result; import fr.iut_fbleau.GameAPI.IBoard; import java.util.Iterator; import java.util.ArrayList; import java.util.Deque; import java.util.ArrayDeque; public class AvalamBoard extends AbstractBoard { private int max_height = 5; private Result result; private boolean gameOver; private int array_length = 9; private ArrayList[][] grid = new ArrayList[this.array_length][this.array_length]; public AvalamBoard(){ super(Player.PLAYER1, new ArrayDeque<>()); //création du tableau this.gameOver = false; this.result = null; } @Override public boolean isGameOver() { return this.gameOver; } @Override public Result getResult() { return this.result; } public boolean In_range(int x_tower_play, int y_tower_play, int x_tower_destination, int x_tower_destination){ boolean in_table = true; if (x_tower_play >= 0 && x_tower_play < 9){ in_table = false; } else if (y_tower_play >= 0 && y_tower_play < 9){ in_table = false; } else if (x_tower_destination >= 0 && x_tower_destination < 9){ in_table = false; } else if (x_tower_destination >= 0 && x_tower_destination < 9){ in_table = false; } return in_table; } @Override public boolean isLegal(AbstractPly c, int x_tower_play, int y_tower_play, int x_tower_destination, int x_tower_destination) { if (this.gameOver) { throw new NullPointerException("Le jeu est terminé"); } if (!(c instanceof NimPly)) { return false; } NimPly coup = (NimPly) c; if (coup.getPlayer() != getCurrentPlayer()) { return false; } if (In_range(x_tower_play, y_tower_play, x_tower_destination, x_tower_destination)){ return false; } // Vérifier que le nombre d'allumettes est valide int nbAllumettes = coup.getNombreAllumettesPrises(); return // modifier IsgameOver } }