Parcours Le Mastermind Étape 1
La palette et le code secret
Ranger six couleurs dans un tableau, tirer un code secret de quatre couleurs au hasard et l'afficher pour vérifier.
Notions :tableau de couleursindiceshasard
Le code secret n'est pas rangé sous forme de couleurs, mais de numéros de couleur, de 0 à 5. La palette fait le lien :
palette vaut [#E0245E, #1D9BF0, #00BA7C, #FFAD1F, #9B59B6, #ECEFF4]
Le numéro 2 désigne palette[2], le vert. Comparer deux numéros est bien plus simple que comparer deux codes couleur, et un tableau nomsCouleurs rangé dans le même ordre permet d'écrire le code en toutes lettres.
Tirer le code
Quatre fois de suite, on ajoute un numéro au hasard :
pour i de 0 à 3
secret ajoute hasard(0, 5)
fin pourUne même couleur peut sortir plusieurs fois : c'est permis dans le vrai jeu, et c'est ce qui rendra le calcul des indices intéressant.
Une imbrication d'indices
Pour dessiner le pion n° i du code, on écrit palette[secret[i]] : on lit d'abord le numéro dans secret, puis la couleur qui porte ce numéro dans palette.
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 palette, nomsCouleurs, secret est un tableau.
Indice 2
texteCode ajoute nomsCouleurs[secret[i]] + " " construit le texte couleur par couleur.
Indice 3
Pour l'instant, le code est affiché pour tester : il sera caché à l'étape suivante.
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
plateau est une toile
palette, nomsCouleurs, secret est un tableau
texteCode est un texte
@ Programme principal
palette vaut [#E0245E, #1D9BF0, #00BA7C, #FFAD1F, #9B59B6, #ECEFF4]
nomsCouleurs vaut ["rouge", "bleu", "vert", "jaune", "violet", "blanc"]
// le code secret : quatre numéros de couleur, de 0 à 5
pour i de 0 à 3
secret ajoute hasard(0, 5)
fin pour
texteCode vaut ""
pour i de 0 à 3
texteCode ajoute nomsCouleurs[secret[i]] + " "
fin pour
affiche "Code secret (pour tester) : " + texteCode
@ Le dessin
dimension(plateau, 320, 120)
remplir(plateau, #1E2430)
pour i de 0 à 3
cercle(plateau, 40 + i * 40, 35, 13, palette[secret[i]])
fin pour
pour i de 0 à 5
cercle(plateau, 35 + i * 50, 90, 18, palette[i])
fin pour
affiche plateau