Parcours Le jeu des allumettes Étape 1
Le tas d'allumettes
Dessiner une rangée de 21 allumettes avec une boucle, sous un titre qui indique combien il en reste.
Notions :toileboucle pourprocédure à paramètre
Une allumette, c'est un rectangle de bois surmonté d'un cercle rouge. Pour en dessiner 21, on répète ces deux formes avec une boucle, en décalant chaque allumette de 17 pixels :
pour n de 0 à nbAllumettes - 1
rectangle(jeu, 20 + n * 17, 70, 6, 90, #E8C07D)
cercle(jeu, 23 + n * 17, 70, 6, #D7263D)
fin pourLa tête est centrée sur le bois : le rectangle fait 6 pixels de large, son milieu est donc 3 pixels plus loin que son bord gauche.
Une procédure pour redessiner
Le tas sera redessiné après chaque coup. La procédure dessiner(message) efface la toile, dessine les allumettes restantes et écrit un message en bas. Le message est un paramètre : chaque appel peut afficher un texte différent.
La boucle va jusqu'à nbAllumettes - 1 : quand il n'y a plus d'allumettes, elle va de 0 à -1 et ne dessine rien.
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
La toile fait 400 × 240 pixels : dimension(jeu, 400, 240).
Indice 2
La dernière allumette (a = 20) est en x = 20 + 20 × 17 = 360 : elle tient dans la toile.
Indice 3
N'oubliez pas affiche jeu à la fin de la procédure.
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
jeu est une toile
nbAllumettes est un nombre
@ Le dessin
procédure dessiner(message)
effacer(jeu)
remplir(jeu, #2D3436)
label(jeu, 20, 34, "Allumettes restantes : " + convertir_texte(nbAllumettes), #FFFFFF, 18)
pour n de 0 à nbAllumettes - 1
rectangle(jeu, 20 + n * 17, 70, 6, 90, #E8C07D)
cercle(jeu, 23 + n * 17, 70, 6, #D7263D)
fin pour
label(jeu, 20, 205, message, #FFD966, 15)
label(jeu, 20, 228, "Touches 1, 2 ou 3 pour retirer des allumettes", #B2BEC3, 12)
affiche jeu
fin procédure
@ Programme principal
dimension(jeu, 400, 240)
nbAllumettes vaut 21
appelle dessiner("À vous de jouer !")