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

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;
}
}