{0,1,...,#}
n1,2, . . . , n
n
i(i+ 1) (i+ 1)
n
(x×y+c)x y
c0,5 (x×y)<0,25 c0,5 (x×y)>0,75 c0
public interface State {
/**
*icône vide par défaut
*/
Icon DEFAULT_ICON = new ImageIcon();
/**
*@return caractère représentant l’état
*/
default char toChar() { return ’.’; }
/**
*@return icône représentant l’état
*/
default Icon toIcon() { return DEFAULT_ICON; }
}
public interface Cell<S extends State, N extends Enum<N>> {
/**
*@return état courant de la cellule
*/
S getState();
/**
*Changer l’état de la cellule.
*@param state : nouvel état de la cellule.
*/
void setState(S state);
/**
*@param direction : direction du voisin que l’on cherche.
*@return référence vers la cellule voisine dans la direction
désirée.
*/
Cell<S, N> getNeighbor(N direction);
/**
*Simuler une transition, sans changer l’état de l’objet.
*@return le prochain état de la cellule après avoir effectué une
*transition.
*/
S nextState();
}
public interface Grid<S extends State, N extends Enum<N>, C extends Cell<?, N>> {
/**
*Exécuter une transition de l’automate cellulaire.
*/
void update();
/**
*@return Chaîne représentant l’état de la grille, en vue de
l’affichage.
*/
String stateAsString();
}
CellImpl Cell<SImpl, NImpl>
Map<NImpl, CellImpl> NImpl CellImpl
getNeighbor()
N
enum SquareGridNbh {
NORTH, NORTH_EAST, EAST, SOUTH_EAST, SOUTH, SOUTH_WEST, WEST, NORTH_WEST
}
S
enum LifeState implements State {
DEAD { public char toChar{} { return ’.’; }},
ALIVE { public char toChar() { return ’O’; }}
}
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !