Parcours Le jeu de la vie Étape 1
La grille et un premier motif
Créer une grille de 30 × 30 cellules, toutes mortes, en allumer cinq pour former un « planeur », et dessiner le tout.
Notions :tableau à deux dimensionsboucles imbriquéesgrille
Le monde est une grille de 30 lignes et 30 colonnes. Chaque cellule est vivante (1) ou morte (0). On range tout dans un tableau à deux dimensions : cellules[l][c] est la cellule de la ligne l et de la colonne c.
Remplir la grille
Deux boucles imbriquées mettent les 900 cellules à 0. Le tableau se crée au fur et à mesure qu'on écrit dedans :
pour l de 0 à 29
pour c de 0 à 29
cellules[l][c] vaut 0
fin pour
fin pourLe planeur
On allume ensuite cinq cellules précises. Elles forment le motif le plus célèbre du jeu de la vie : le planeur, qui se déplacera tout seul en diagonale !
Dessiner
Chaque cellule fait 10 × 10 pixels. Une cellule vivante est un carré vert de 8 pixels, avec 1 pixel de marge. grille(monde, 10, couleur) trace le quadrillage en une ligne. Une bande en bas de la toile servira à afficher des informations.
Ouvrez CoddyRun et partez d'un programme vide : tout commence ici.
Il te faut le logiciel pour faire cette étape. Il est gratuit : crée ton compte pour le télécharger, puis reviens ici, ta place t'attend.
Créer mon compte et téléchargerIndice 1
Déclarez monde est une toile (300 × 330) et cellules est un tableau.
Indice 2
Les boucles de dessin utilisent d'autres noms, ly et cx, pour ne pas se mélanger avec celles du programme principal.
Indice 3
Le planeur : les cellules (1, 2), (2, 3), (3, 1), (3, 2) et (3, 3).
Voir la solution complète
Essayez d'abord par vous-même : c'est en cherchant qu'on apprend. La solution sert à vérifier ou à se débloquer.
@ Les déclarations
monde est une toile
cellules est un tableau
@ Le dessin
procédure dessiner()
effacer(monde)
remplir(monde, #0D1117)
grille(monde, 10, #1E2A38)
pour ly de 0 à 29
pour cx de 0 à 29
si cellules[ly][cx] = 1 alors
rectangle(monde, cx * 10 + 1, ly * 10 + 1, 8, 8, #00BA7C)
fin si
fin pour
fin pour
rectangle(monde, 0, 300, 300, 30, #161B22)
affiche monde
fin procédure
@ Programme principal
dimension(monde, 300, 330)
pour l de 0 à 29
pour c de 0 à 29
cellules[l][c] vaut 0
fin pour
fin pour
// un planeur
cellules[1][2] vaut 1
cellules[2][3] vaut 1
cellules[3][1] vaut 1
cellules[3][2] vaut 1
cellules[3][3] vaut 1
appelle dessiner()