package model; import java.util.ArrayList; import java.util.List; public class ArrayGrid implements Grid{ private Cell [][] cells; private int numberOfRows; private int numberOfColumns; public ArrayGrid(int numberOfRows, int numberOfColumns) throws Exception{ if(numberOfRows <= 0 || numberOfColumns <= 0){ throw new IllegalArgumentException("taille nulle ou négative");} this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; this.cells = new Cell[numberOfRows][numberOfColumns]; for (int i = 0; i < numberOfRows; i++){ for (int j = 0; j < numberOfColumns; j++){ cells[i][j] = new SquareCell(); } } for (int i = 0; i < numberOfRows; i++) { for (int j = 0; j < numberOfColumns; j++) { calculateNeighbours(i,j); } } } public void calculateNeighbours( int rowIndex, int columnIndex){ List<Cell> neighbours = new ArrayList<>(); if (rowIndex==0){ neighbours.add(getCell(rowIndex+1,columnIndex));} else if (rowIndex<this.getNumberOfRows()-1) { neighbours.add(getCell(rowIndex-1,columnIndex)); neighbours.add(getCell(rowIndex+1,columnIndex)); } if (rowIndex==this.getNumberOfRows()-1){ neighbours.add(getCell(rowIndex-1,columnIndex)); } if (columnIndex==0){ neighbours.add(getCell(rowIndex,columnIndex+1));} else if (columnIndex<this.getNumberOfColumns()-1 ) { neighbours.add(getCell(rowIndex,columnIndex-1)); neighbours.add(getCell(rowIndex,columnIndex+1)); } if (columnIndex==this.getNumberOfColumns()-1){ neighbours.add(getCell(rowIndex,columnIndex-1));} getCell(rowIndex,columnIndex).setNeighbours(neighbours); } @Override public Cell getCell(int row, int column) { return this.cells[row][column]; } @Override public int getNumberOfRows() { return this.numberOfRows; } @Override public int getNumberOfColumns() { return this.numberOfColumns; } @Override public void color(ColorGenerator colorGenerator) { for (int i=0; i<this.numberOfRows;i++){ for(int j=0; j<this.numberOfColumns;j++){ colorGenerator.nextColor(cells[i][j]); } } } ======= >>>>>>> origin/main }