You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.3 KiB
45 lines
1.3 KiB
package model;
|
|
|
|
import model.cellule.Cellule;
|
|
import model.cellule.Position;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Classe permtant de compter des cellules
|
|
* @author Yohann Breuil
|
|
* @author Allan Point
|
|
*/
|
|
public class CompteurDeCellule {
|
|
|
|
/**
|
|
* Compte le nombre de voisinne de la cellule (x; y)
|
|
* @param x Absisse de la cellule à compter
|
|
* @param y Ordoné de la cellule à compter
|
|
* @param cellulesVivantes Toutes les cellule vivantes
|
|
* @return Le nombre de voisinne de la cellule (x; y)
|
|
*/
|
|
public int compteNombreCellulesAutour(int x, int y, CellulesVivantes cellulesVivantes){
|
|
int cpt = 0;
|
|
Cellule c;
|
|
List<Position> positionsAVerifier = new LinkedList<>();
|
|
|
|
// Définition des 8 diréction autour de la position (x; y)
|
|
positionsAVerifier.add(new Position(x-1, y-1));
|
|
positionsAVerifier.add(new Position(x, y-1));
|
|
positionsAVerifier.add(new Position(x+1, y-1));
|
|
positionsAVerifier.add(new Position(x+1, y));
|
|
positionsAVerifier.add(new Position(x+1, y+1));
|
|
positionsAVerifier.add(new Position(x, y+1));
|
|
positionsAVerifier.add(new Position(x-1, y+1));
|
|
positionsAVerifier.add(new Position(x-1, y));
|
|
|
|
for (Position p: positionsAVerifier) {
|
|
c = cellulesVivantes.getAt(p.getX(), p.getY());
|
|
cpt = c == null ? cpt : cpt+1;
|
|
}
|
|
return cpt;
|
|
}
|
|
}
|