83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| 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<Integer>[][] 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
 | |
|     }
 | |
| 
 | |
| } |