Parcours La course d'escargots Étape 1
La piste et les escargots
Dessiner une piste à quatre couloirs avec une ligne d'arrivée en damier, et quatre escargots de couleurs différentes sur la ligne de départ.
Notions :procédure de dessincouloirs alternésdamier avec mod
Un escargot, c'est un assemblage de formes : une ellipse pour le corps, un cercle pour la tête, deux lignes pour les antennes, et une coquille faite de trois cercles de plus en plus petits et transparents, qui dessinent une spirale. La procédure escargot(x, y, teinte) place tout autour du point (x, y).
Les couloirs
Quatre bandes de 50 pixels de haut, espacées de 55. Pour mieux les distinguer, elles alternent entre deux verts : sialors(pair(i), …, …).
Le damier d'arrivée
La ligne d'arrivée est faite de petits carrés noirs et blancs qui alternent à chaque rangée :
rectangle(piste, 380 + (k mod 2) * 6, 30 + k * 10, 6, 10, #FFFFFF)
k mod 2 vaut 0, puis 1, puis 0… : le carré blanc saute d'une colonne à l'autre à chaque rangée.
Les positions
Les positions des quatre escargots sont rangées dans un tableau, toutes à 40 au départ : la course pourra les faire avancer.
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 piste est une toile (420 × 260) et positions, teintes, noms est un tableau.
Indice 2
L'escargot du couloir i se dessine en y = 30 + i * 55 + 30, au milieu de sa bande.
Indice 3
Le nom de chaque coureur s'écrit au début de son couloir, en petit.
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
piste est une toile
positions, teintes, noms est un tableau
@ Les dessins
procédure escargot(x, y, teinte)
// le corps et la tête
ellipse(piste, x + 4, y + 8, 22, 6, #C8A97E)
cercle(piste, x + 22, y + 4, 5, #C8A97E)
// les antennes
ligne(piste, x + 22, y, x + 28, y - 11, #8D6E4C, 2)
ligne(piste, x + 19, y, x + 20, y - 12, #8D6E4C, 2)
cercle(piste, x + 28, y - 11, 2, #2D3436)
cercle(piste, x + 20, y - 12, 2, #2D3436)
// la coquille, avec sa spirale
cercle(piste, x, y - 4, 14, teinte)
cercle(piste, x, y - 4, 8, rgba(255, 255, 255, 0.35))
cercle(piste, x, y - 4, 3, rgba(255, 255, 255, 0.6))
fin procédure
procédure dessinerPiste()
effacer(piste)
remplir(piste, #6AB04C)
pour i de 0 à 3
rectangle(piste, 0, 30 + i * 55, 420, 50, sialors(pair(i), #A3CB38, #B8D962))
label(piste, 4, 44 + i * 55, noms[i], #2D3436, 11)
fin pour
// la ligne d'arrivée en damier
pour k de 0 à 21
rectangle(piste, 380 + (k mod 2) * 6, 30 + k * 10, 6, 10, #FFFFFF)
rectangle(piste, 386 - (k mod 2) * 6, 30 + k * 10, 6, 10, #2D3436)
fin pour
pour i de 0 à 3
appelle escargot(positions[i], 30 + i * 55 + 30, teintes[i])
fin pour
affiche piste
fin procédure
@ Programme principal
teintes vaut ["#F4212E", "#1D9BF0", "#FFD43B", "#7A4E9C"]
noms vaut ["Fusée", "Éclair", "Tornade", "Mollusque"]
dimension(piste, 420, 260)
vide positions
répète 4 fois
positions ajoute 40
fin répète
appelle dessinerPiste()