Le nième jeu de la vie en net2 avec la classe graphics de .net

Soyez le premier à donner votre avis sur cette source.

Vue 7 379 fois - Téléchargée 744 fois

Description

Il sagit du jeu de la vie. C'est pas le premier je sais.
Je pense que beaucoup de monde connait les regles de cet automate cellulaire.
En voici la regle très bien expliué à cette adresse pour les curieux : http://fr.wikipedia.org/wiki/Le_jeu_de_la_vie

Mon programme permet d'emuler le comportement des cellules. Fonction du programme :
-Vitesse de calcul comprise entre 0ms et 100ms entre deux itérations pour un monde allant de 3*3 à 200*200 (qu'on peut pousser à 300)
-Vitesse d'affichage allant de 2ms à 300ms pour les même mondes
-Le moteur graphique de .Net permet une émulation très correcte jusqu'à 120*120 à environ 15ms
-Possibilité d'agrandir la taille des cellules
-Zoom sur l'image
-Changement des couleurs
-Grille activable
-Possibilité de voir les cellules ne vivant qu'une fois d'une autre couleur
-Utilisation du processeur par l'application.
-Rafraîchissement des cellules.
-Map pour voir l'ensemble du monde avec zone pour voir ce que l'on voit par rapport à la taille du monde.
-Ajouter au hasard une certaine quantité de cellules (entre 1 et 100%)
-Possiblité d'ajouter ou d'enlever une cellule en cliquant dessus.
-Voir le temps de calcul et d'affichage en ms et voir si l'interval du timer est respecté.
-Mode pas à pas, auto, arret

Au niveau du programme :
-Utilisation de la classe Graphics
-Utilisation de Graphics.FillRectangles qui permet de tracer tous les rectangles d'un tableau à la fois, beaucoup plus rapide qu'un par un.
-Le coeur du programme est composé de deux procedures, l'une ragardant le nombre de voisins de la cellule, l'autre qui prend des décisions.
-Un bout de code pour remplir un autre tableau comportant les cellules qui ne vivront qu'une fois si option activée.
-Procedures intelligentes, evitent de retracer les rectangles dont l'état est le même à n et n+1. Vitesse accrue. Environ une dizaine de rectangles tracés au lieu de 3000.
-A vous de découvrir le reste je vais ecrire mon programme deux fois ;)

Au niveau de l'optimisation :
-Impression
-Implentation de d'autres automates possibles (comme celui d'ulman ou de neige extraterrestre à http://perso.orange.fr/therese.eveilleau/pages/truc_mat/textes/conway.htm)
-Vos idées.
-Duree de vies des cellules selin des criteres

Mise à jour du 29 Juin 2006
-Vitesse plus rapide surtout lorsqu'il sagit de retracer toute les cellules
-Sauvegarde des images (carte + cellules)
-Sauvegarde et chargement des options
-Sauvegarde et chargement des cellules pour y travailler confortablement et reprendre plus tard ;)
-Utilisation de Xml pour les entrées/sorties sur le disque (environ 200ms pour un monde de 200*200 [40000 cells] fichier environ 1Mo)
-Principe de l'automate
-Monde Infini activable qui permet lorsqu'une cellule déborde du monde de la placer de l'autre coté (style un globe)
-Utilisation de TryCatch pour les entrees/sorties sur le disque
-Plus de commentaires
-Exemples de structures (canons à pleurs par ex)
-D'autres petits trucs que je me souviens plus

Rappel, compiler le projet pour augmenter la vitesse

Merci de commenter cette source.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

J'ai utlisé Xml car il est très rapide pour l'enregistrement et l'utlisateur normalement n'a pas à ouvrir le fichier. Le blocage de la fenêtre je sais pas. J'avais activer cette option car au début le redimensionnement ne marcherait pas alors que là il suffit de deux lignes de code et on peut.
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Salut,

Ca évolue c'est bien.
Par contre je sais pas si le xml est une bonne idée. Ca fait des gros fichier assez long de plus de 2000 lignes.
Un autre truc qui dérange;
Pourquoi on peux pas changer la taille de la fenêtre ?

Voili, voilou

Kenji
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Pour certains exemples, le mode infini doit être désactivé ou activé. Pour le canon pleureur il doit être désactivé.
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Voilà j'ai fais une Maj assez importante. Profitez en bien..
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Je viens de finir la sauvegarde en Xml des options. Je m'attaque à la sauvegarde des cellules et à l'impression. Je pense que je ferais une Maj d'ici 4 jours.
Afficher les 8 commentaires

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.