Jeu de la vie 2015-2016 TP 5 - Corrigé partie 1 Jeu de la vie Les solutions données dans ce corrigé ne sont bien sûr que des propositions, et sont sans nul
Previous PDF | Next PDF |
[PDF] TP 5 - Corrigé partie 1 Jeu de la vie - Marc Pegon
Jeu de la vie 2015-2016 TP 5 - Corrigé partie 1 Jeu de la vie Les solutions données dans ce corrigé ne sont bien sûr que des propositions, et sont sans nul
[PDF] TP ENS 2003: Jeu de la vie – Correction - Inria Bordeaux Sud-Ouest
TP ENS 2003: Jeu de la vie – Correction Damien Martin-Guillerez Lycée Chateaubriand Décembre 2006 Si vous avez des questions, n'hésitez pas `a
[PDF] Jeu de la vie
Corrigé informatique commune Jeu de la vie 1 Génération de la configuration initiale Question 1 Le script ci-dessous calcule dans un tableau les 10 000
[PDF] Le jeu de la vie - Lycée Edmond Perrier
Le jeu de la vie : - Un jeu qui simule l'évolution d'une population de cellules, - Une grille où chaque case contient ou non une cellule, - Il répond à trois règles :
[PDF] TD : Le jeu de la vie
Créez une fonction jeu_de_la_vie, de type bool array array -> unit telle que jeu_de_la_vie g met à jour la grille g selon les règles du jeu de la vie
[PDF] Olympiades de Mathématiques, Grenoble 2017 - Freemathsfr
SUJET + CORRIGÉ Olympiades Les candidats des séries L, ES et STMG traitent les exercices numéros 3 (Jeu de la Vie) Le mathématcien américain John Conway a imaginé vers 1970 un jeu, appelé "Jeu de la vie" iui met en scène
[PDF] Devoir 1 - Programmation PVM Programmation du jeu de la vie
Le jeu de la vie est un automate cellulaire sur une grille 2D en principe infinie Chaque point de la ne fonctionne pas, le devoir ne sera pas corrigé A rendre
[PDF] Chapitre 3 - NTN SNR
Durée de vie nominale corrigée 68 Influence du jeu de fonctionnement 81 vie atteinte par 90 des roulements travaillant sous charge dynamique
[PDF] Créer un jeu de Pong sur Scratch
Les raquettes Une partie débutera en cliquant sur le drapeau vert Le script pour les raquettes est simple ; il suffit de les mettre en position initiale, puis de les
[PDF] JEU DE LANGAGE : DES FLEURS POUR LES OURS ( Voir
[PDF] Jeu de lecture en 54 cartes
[PDF] Jeu de Ludo
[PDF] JEU DE L`ELASTIQUE Jeu 1 : Partie Chinoise
[PDF] Jeu de l`enveloppe - Union Rhône
[PDF] Jeu de l`escargot qui lit
[PDF] Jeu de l`haltéro n°1 Essayez de compléter la grille de sorte que
[PDF] JEU DE L`OIE - Des Jeux Et Des Puzzles
[PDF] JEU DE L`OIE - Viens, lève-toi
[PDF] jeu de l`oie Égypte Antique - Anciens Et Réunions
[PDF] Jeu de l`oie et groupes thérapeutiques avec des personnes alcoolo
[PDF] Jeu de l`oie géant
[PDF] Jeu de l`oie geant - Association Equi`Max
[PDF] Jeu de l`oie géant : règles du jeu - Anciens Et Réunions
TP 5 - Corrigé partie 1 Jeu de la vie 2015-2016
TP 5 - Corrigé partie 1
Jeu de la vie
Les solutions données dans ce corrigé ne sont bien sûr que des propositions, et sont sans nul doute perfectibles. Parfois on proposera même plusieurs solutions en discutant de leur pertinence.1 Introduction
Q1Après application des règles on obtient :2 Implémentation Q2Dans le cas oùNest pair, il faut faire un choix sur le centre de la grille : contentons- nous de prendre la partie entière de N2 , qui peut être obtenue en Python parN//2. Il peut être judicieux de commencer par l"affectationc = N//2, d"une part par soucis de lisibilité, d"autre part pour s"assurer que l"interpréteur Python ne calcule bien qu"une fois cette valeur.Plutôt que d"écrire7instructions très proches, on pourrait être tenté de factoriser (par
une boucle, ou en sélectionnant plusieurs cellules d"un coup), mais ici c"est sans doute se donner du mal pour rien. L"important est de procéderméthodiquement, pour n"oublier aucune cellule et éviter d"initialiser deux fois la même : par exemple en procédant colonne par colonne de gauche à droite et de haut en bas.Spéciale BCPST 2 1 Marc Pegon TP 5 - Corrigé partie 1 Jeu de la vie 2015-2016Listing 1 - init_jeu_u (1ere version)
1definit_jeu_u(N) :2grille = np.zeros((N, N), dtype=float)3c = N//24
5grille[c-1,c-1] = 16grille[c-1,c] = 17grille[c-1,c+1] = 18grille[c,c+1] = 19grille[c+1,c-1] = 110grille[c+1,c] = 111grille[c+1,c+1] = 112
13returngrilleListing 2 - init_jeu_u (2e version)
1definit_jeu_u(N) :2grille = np.zeros((N, N), dtype=float)3c = N//24
5# On selectionne 3 cellules sur la meme colonne6grille[c-1,c-1:c+2] = 17grille[c,c+1] = 18grille[c+1,c-1:c+2] = 19
10returngrilleListing 3 - init_jeu_u (3e version, avec une boucle)
1definit_jeu_u(N) :2grille = np.zeros((N, N), dtype=float)3c = N//24
5# On cree une liste d"abscisses et d"ordonnees pourparcourir les points
6# (-1,-1), (-1,0), (-1,1), (0,1), (1,-1), (1,0), (1,1)7lX = [-1, -1, -1, 0, 1, 1, 1]8lY = [-1, 0, 1, 1, -1, 0, 1]9
10# zip permet de parcourir simultanement les listes lX et lY11for(x,y)in zip(lX, lY):12grille[c+x, c+y] = 113
14returngrilleSpéciale BCPST 2 2 Marc Pegon
TP 5 - Corrigé partie 1 Jeu de la vie 2015-2016Q3Pas de difficulté : on parcourt la grille et on crée la liste des abscisses et des ordonnées
des points à tracer. On pensera à effacer la figure courante avant d"afficher les points.Listing 4 - afficher_jeu1defafficher_jeu(grille):2X = []3Y = []4foriin range(1,grille.shape[0]-1):5forjin range(1,grille.shape[1]-1):6if(grille[i,j] != 0):7X.append(i)8Y.append(j)9plt.clf()10plt.axis([0, grille.shape[1], 0, grille.shape[0]])11plt.plot(X, Y, "ks")Q4Ici aussi on peut être tenté d"écrire plutôt une boucle mais au final il est sans doute
plus sage et rapide d"écrire chaque voisine à la main. On proposera néanmoins les deux versions. Il est important de comprendre pourquoi le fait de supposer que(i,j)ne désigne pas une cellule du bord simplifie grandement l"écriture de cette fonction. En effet si par exemple i=N-1il faudrait faire attention à ne pas tester les voisines de droite sous peine de " sortir »du tableau! De même pour les bords gauche, haut et bas.Listing 5 - compter_voisins (1ere version, en une ligne)1defcompter_voisins(grille, i, j):2return(grille[i-1,j-1] + grille[i-1, j] + grille[i-1,j+1] +grille[i,j-1] + grille[i,j+1] + grille[i+1,j-1] + grille
[i+1, j] + grille[i+1,j+1]) Listing 6 - compter_voisins (2e version, avec une boucle)1defcompter_voisins(grille, i, j):2# on cree une liste d"abscisses et d"ordonnees pourparcourir les cellules voisines
3lX = [-1, -1, -1, 0, 0, 1, 1, 1]4lY = [-1, 0, 1, -1, 1, -1, 0, 1]5
6s = 07for(x,y)in zip(lX, lY):8s += grille[i+x,j+y]9returnsSpéciale BCPST 2 3 Marc Pegon
TP 5 - Corrigé partie 1 Jeu de la vie 2015-2016 Q5On demande que la fonction modifie la grille passée en argument et ne retourne rien. On voit qu"on a besoin d"effectuer une copie de la grille avant toute chose : l"état d"unecellule de générationN+1dépend de l"état de ses voisines à la générationN, donc il faut
garder une copie de la configurationNinchangée! Faire attention à ne parcourir que l"intérieur de la grille, pour ne pas appeler la fonction compter_voisinssur les bords. Listing 7 - iterer_jeu1defiterer_jeu(grille):2precG = grille.copy()34foriin range(1,grille.shape[0]-1):5forjin range(1,grille.shape[1]-1):6c = compter_voisins(precG, i, j)7if((grille[i,j] == 1andc == 2)orc == 3):8grille[i,j] = 19else:10grille[i,j] = 0Q6Pas de difficulté ici.
Listing 8 - iterer_jeu modifiée1defiterer_jeu(grille, nb_iter, afficher = False):2forkin range(nb_iter):3precG = grille.copy()4