Home
Jeu de la vie
Contents
1. 10 11 5 COMMONGCS 12 13 Introduction Pour l examen du Baccalaur at d ISN il est demand de choisir un projet r aliser 1 propos du Jeu de vie Le jeu de la vie automate cellulaire imagin par John Horton Conway en 1970 est probable ment l heure actuelle le plus connu de tous les automates cellulaires Malgr des r gles tr s simples le jeu de la vie permet le d veloppement de motifs extr mement complexes Toute cellule ayant exactement deux ou trois cellules voisines survit la g n ration suivante Toute cellule ayant quatre cellules voisines ou plus meurt par touffement la g n ration sui vante Une cellule isol e oun avant qu un seule cellule voisine meurt d isolement la g n ration suivante Sur une case vide comportant exactement trois cellules voisines il une cellule la g n ration suivante Exemple Les cases peuvent donc avoir deux tats vivante ou morte Une case tient compte de ses huit voisines pour d terminer son tat la g n ration suivante 2 Pourquoi ce projet Je me suis int ress au Jeu de la vie apr s avoir vu les possibilit s ce projet en terme de programmation l impl mentation de l algorithme de base tant simple mais le d veloppement int ressant Les automates cellulaires son
2. Commandes CE Calcule et affiche le prochain tat des cellules G n re et affiche une grille al atoire Active ou d sactive le mode dition Ces 12 Conclusion PyLife est un programme impl mentant simplement le jeu de la vie Son utilisation est simple visuelle et n est limit que par l imagination de l utilisateur et les capacit s du Bugs Il n existe actuellement aucun bug connu Le calcul de beaucoup de g n rations peut faire planter le programme si l ordinateur n est pas assez puissant Sur le PC de test des valeurs comme 1000000000 feront planter le programme Am liorations du programme le programme en avec Qt par exemple pour une vitesse bien sup rieure d ex cution peux penser une toolbar pour contr ler le programme e J avais aussi eu pour id e d un jeu de la vie 3 dimensions mais Tkinter suffit pas pour la 3D e aussi un algorithme bien plus puissant mais tr s compliqu int grer pour le jeu de la vie HashLife Ce dernier est capable de calculer de tr s nombreuses grilles en tr s peu de temps e Mieux supporter les fichiers LIF e Prise en charge de r gles personnalis es du jeu de la vie Proposer plus de formes d exemples ou par d faut R f rences http fr wikipedia org wiki Jeu la vie http www jeulin net automates automate html 13 Le Jeu de la vie
3. est recommand de fermer toutes les applications actives avant de continuer Cliquez sur Suivant pour continuer ou sur Annuler pour abandonner l installation la fin de l installation le programme se lance Vous pourrez le lancer depuis le menu d marrer ou encore avec l ic ne du bureau 2 Installation Linux Sur linux d compressez le fichier zip et lancez les commandes suivantes dans le r pertoire PyLi fe sudo apt get install python3 python3 lifeapp pyw 3 D sinstallation Sur Linux supprimer simplement les fichiers du jeu Sur Windows il faut aller dans Menu d marrer gt Tous les programmes gt gt D sinstaller Py Life 10 4 Interface L interface est compos d un menu et de la grille Il y a 3 menu vie grille et cellule Jeu de la vie Vie Grille Cellules fl Le menu Vie permet l volution automatique le calcul de n tat le prochain tat un tat al atoi re d effacer la grille ou encore de quitter le programme Le menu Grille permet de changer de mode de grille d en charger une au format et d diter la grille actuelle Le menu Cellule permet de charger de mode de cellule BL YIEE Grille Cellules f Jeu de la vie Grille Vie Cellules Evolution automatique S Mode classique Calculer n generations We Charger LIF Mode fun P deet etat Mode ferme Aleatoire Mode tore Effacer Edition Quitter 5
4. Mathieu Orban Terminale 5 Sp cialit ISN Projet 15 Jeu de la vie Bol re Pr sent pour l obtention du Baccalaur at soutenu en Mai 76 Jeu de la vie BCE Vie Grille Professeur 15 Mr Mandon Lyc e Jean Jaur s Saint Cl ment de Rivi re Acad mie de Montpellier 2012 2013 Sommaire leid reiege de EE 3 1 propos du jeu de vie 3 2 EENEG 3 Caner deS EE aa ce 4 1 COMPpatDIItE etant te date anale eee 4 2 CONTON D 4 4 teg eet E 4 S 5 RADOONETECANIQUE 2e nee cr en nn er de 6 Choix technologiques ss 6 Programmation nomenclatures et documentation 6 1 Une GUI avec la programmation v nementielle 01800802 6 2 Une structure avec la programmation orient objet 6 3 Noms de fonctions de classes de variables et de fichiers 6 4 Commentaires et documentation ss 6 DES FU LG AU EE 7 1 D coupage RE 7 2 D coupage et fonctionnement des classes 8 Douanes ane Me eo 9 1 el neet geleet 9 DT DEE 9 Manuel e Utilis 10 gt te ele 10 2 ANSALAN 10 3 te e
5. app pyw lifeaction py lifecell py lifecellfun py lifecontrols py lifegridtore py Le jeu peux fonctionner de mani re minimale avec lifegrid py et lifecell py 2 D coupage classes Le diagramme ci dessous repr sente le fonctionnement des classes dans le programme On peux observer plusieurs d pendances et des h ritages nombreux La classe est la classe de base des application Tkinter Elle sert cr er la fen tre mais aussi g rer les v nements les widgets La classe LifeApp que peu d utilit sinon d englober le programme On remarque l utilisation de l h ritage de LifeCell et LifeGrid pour cr er respectivement LifeCell Fun et LifeGridTore L gende LifeControls H rite de Agit sur BL CSAGETLONS LifeGrid LifeCell 4 LifeCellFun LifecridTore D Algorithmes 1 Impl mentation des r gles On s int resses aux fonction get voisins des classes LifeGrid et LifeGridTore La premi re est une impl mentation dite ferm e du jeu la seconde fonctionne comme un tore Nb on remarquera que voisins n est pas en anglais contrairement au reste du programme plus court et parlant cette fois ci Algorithme ferm de d comptage n_voisins 0 pour x_ voisin allant de 1 1 pour y_ voisin allant de 1 1 Si voisin et y_voisin sont dans grille et que x_ voisin voisin ne
6. e 2 La structure avec la programmation orient objet Plus adapt pour un programme de cette taille bien plus simple maintenir mieux structur factorisation de code pas de variable globales j ai pr f r la nb Python propose une impl mentation particuli re de la POO sans notion d encapsulation Tout les attributs et les m thodes sont publiques 3 Noms de fonctions de classes de variables et de fichiers Classes CamelCase Fonctions et m thodes function name Variables var name Fichiers classname py En anglais pour des noms courts universels et simples 4 Commentaires et documentation Les commentaires seront fait en dessous des nom de fonctions sur plusieurs lignes en utilisant une structure conventionnelle Les commentaires seront en fran ais uniquement Chaque fonc tion est document de mani re que l on comprenne son r le et son fonctionnement global Le param tre self ne sera jamais document il s agit de l objet lui m me Les param tres d entr es sont annot param de retour return et see d signe r f ren ce dans le programme class math def carre sel f x WUW Retourne le carr de x int x Le nombre entier x Areturn int Le nombre au carr return Structure 1 D coupage fichier Une classe par fichier chaque classe repr sente une partie du programme life
7. est cr 1970 par math maticien John Hor ton Conway Depuis il a fascin des g n rations de programma teurs et de math maticiens dans la recherche de nouvelles formes et de propri t s Le jeu de la vie est impr visible malgr des r gles simples un automate cellulaire PyLife est un impl mentation graphique na ve du jeu de la vie Python avec Tkinter LI Partant de forme tr s simples il est possible d obtenir des motifs plus complexes Mathieu Orhan
8. r d s le lancement un programme une forme connue tel qu un oscillateur ou un glider 5 Exemples d utilisation 1 2 3 Edition Lancer le jeu de la vie Appuyer sur chap le jeu se vide Appuyer sur e lance le mode dition Cliquer sur des cases pour former une un croix Appuyer sur espace Observer l volution en r glant de sorte que la vitesse soit lente Fichier LIF Lancer le jeu de la vie Aller dans grille gt charger LIF S lectionner un fichier LIF adapt la taille de la grille Appuyer sur espace observer Al atoire Lancer le jeu de la vie Appuyer surr Appuyer sur espace et r gler sur une vitesse moyenne Rapport technique Choix technologiques Pour le langage de programmation j ai choisi Python non pas parce que c tait le plus perfor mant ou le plus adapt mais parce que Python permet d tre productif et d crire du code vite et simplement La derni re version 3 2 est utilis e Aussi c est le langage tudi en cours et celui connu de mani re certaine du jury Pour l interface graphique mon choix s est port sur Tkinter la biblioth que fournie par d faut avec Python3 B Style de programmation nomenclature et documentation 1 Une avec la programmation v nementielle parle ici de GUI et donc de programmation v nementielle Le programme tourne alors en boucle l infini et r agit des v nements un clic une pression sur un
9. ralentir l avanc automatique Touche lt Right gt pour avancer d une g n ration Touche lt r gt pour g n rer une grille al atoire e Utiliser le programme avec les menus e Menu Vie Evolution automatique e Calculer g n ration tat e Al atoire e Effacer e Quitter e Edition e e Charger LIF Mode ferm Mode e Menu Cellule e classique Mode fun e Editer le programme souris m me pendant l volution quand le mode dition est acti v Le programme doit pouvoir e Calculer une g n ration 1 partir d une g n ration n e Calculer une g n ration partir d une g n ration n e Afficher un tat n G n rer des configurations al atoires pseudo al atoire de grilles Effacer la grille toutes les cellules sont mortes Etre dit la souris quand le mode dition est activ e tout moment Supporter th oriquement toutes tailles de grilles et de cellules e Agir de mani re ferm d une part e Agir comme un tore d autre part des variantes au niveau de l apparence des cellules e Charger de mani re simple des fichier Life 1 05 Life 1 06 e Calculer et afficher de mani re continue de tats le temps avant chaque calcul tant mo difiable en temps r el de mani re na ve les r gles du Jeu de la vie de Conway Propose
10. sont pas nuls ajoute la valeur de la vie de la cellule vosine n_voisins renvoyer n_voisins Algorithme tore de d comptage down contiennent respectivement x 1 et x 1 si les limites du tableau ne sont pas attein tes sinon l autre extr mit du tableau De m me pour y down On renvoi l addition de l tat des 8 cellules voisines R gles du jeu vivant si voisins 3 ou voisins 2 et cellule morte sinon mort pour chaque cellule 2 Fichiers LIF Chargement Demande l utilisateur de choisir un fichier et l ouvre en lecture seule Pour chaque ligne du fichier Passe les lignes de commentaires du fichiers Si la ligne commence par Isole les param tres dans settings Remet logic z ro Passe la ligne suivante Tant que la ligne n est pas un commentaire ou vide Remplace par O et par 1 et ajoute logic Passe la ligne suivante Ajoute les settings et logic dans inserts Efface la grille Pour chaque insert de inserts R alise l insertion dans la grille partir d un point central Ferme le fichier Manuel d utilisation 1 Installation Windows Veuillez vous munir de python 3 2 et de setup exe l installateur Windows Lancez setup exe et suivez les instructions Installation PyLife rx Bienvenue dans l assistant d installation de Pylife Cet assistant va vous guider dans l installation de Pylife version 1 0 sur votre ordinateur Il
11. t aussi amusant regarder voluer m me si n est pas un jeu De plus de nombreuses ressources sont disponibles sur ce sujet des formes r p titives immo biles se d pla ant Cahier des charges 1 Compatibilit Compatible avec au moins Windows XP et sup rieur les principales distributions Linux et Mac OS Le syst me devra tre quip d une configuration moyenne pour faire tourner le programme dans de bonnes conditions 2 Contexte Projet pr senter devant un jury pour l obtention du baccalaur at 2013 R alis seul dans d lai de quelques mois dans le cadre des cours d ISN avec pour professeur Mandon 3 Sujet Le Jeu de la vie est un mod le d automate cellulaire proposant dans la version originale les r gles suivantes Une cellule a plus de 3 cellules voisines vivantes elle meurt e cellule a moins de 2 cellules voisines vivantes elle meurt Siune cellule est entour e par exactement 3 cellules vivantes elle La grille est th oriquement infinie mais elle sera finie dans la r alit du programme 4 Contraintes Commandes utilisateur e Utiliser le programme au clavier Touche lt chap gt pour effacer la grille Touche lt e gt pour diter la grille Touche lt space gt pour avancer automatiquement Touche lt space gt pour stopper l avance automatique Touche lt Up gt pour accelerer l avance automatique Touche lt Down gt pour
Download Pdf Manuals
Related Search
Related Contents
EPSON SMART PANEL for Scanner 企画書をダウンロード Copyright © All rights reserved.
Failed to retrieve file