Voici un classique : le
jeu de la vie.
La classe ConwayWorld permet de manipuler un jeu de la vie avec les règles d'évolution de Conway. On pourra également manipuler n'importe quel autre monde en définissant ses propres règles d'évolution, il suffit d'étendre la classe AbstractWorld.
J'ai mis en place deux visualisations, une en mode texte (TextDisplayer), l'autre en Swing (GraphDisplayer). Il est possible de créer d'autres visualisations en implémentant l'interface Displayer.
Un exemple d'utilisation :
package gameoflife;
import gameoflife.conway.ConwayWorld;
import gameoflife.displayer.Displayer;
import gameoflife.displayer.graph.GraphDisplayer;
import gameoflife.world.WorldManipulator;
public class Start
{
public static void main(String...args)
{
// Settings of displayer
String title = "Conway Game of life";
int size = 800;
int pause = 200;
Displayer displayer = new GraphDisplayer(title, size, size, pause);
// Settings of game of life
int dim = 65;
boolean toroidal = true;
WorldManipulator world = new ConwayWorld(dim, dim, toroidal);
world.setDisplayer(displayer);
// Initialization
for (int i=0; i<dim; i++)
{
world.setAlive(0, i, true);
world.setAlive(i, 0, true);
}
// Execution
int nbStep = 256;
world.run(nbStep);
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.