Jeu de la vie


Description

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

Codes Sources

A voir également

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.