Parcours Le serpent (Snake) Étape 1
La grille de jeu
Dessiner un terrain de 20 × 20 cases de 15 pixels, et colorer une case de test à partir de son numéro de colonne et de ligne.
Notions :constantegrilleconversion case → pixels
Le serpent ne se déplace pas pixel par pixel mais case par case. Le programme raisonnera donc en cases (colonne, ligne), et ne convertira en pixels qu'au moment de dessiner.
Deux constantes
cote est une constante vaut 15 nbCases est une constante vaut 20
Une constante ne peut plus changer. Toute la taille du jeu en découle : la toile mesure nbCases * cote = 300 pixels de côté. Envie de cases plus grosses ? On change un seul nombre.
Le nom taille serait tentant, mais c'est déjà une fonction native : d'où cote.
Dessiner la grille
grille(toile, pas, couleur) trace un quadrillage régulier : avec un pas de 15, une ligne tous les 15 pixels.
De la case au pixel
La case de la colonne 5 et de la ligne 3 commence à x = 5 × 15 = 75 et y = 3 × 15 = 45 :
rectangle(terrain, 5 * cote, 3 * cote, cote, cote, #00BA7C)
Les colonnes et les lignes sont numérotées à partir de 0, comme les cases d'un tableau : elles vont de 0 à 19.
Ouvrez CoddyRun et partez d'un programme vide : tout commence ici.
Indice 1
dimension(terrain, nbCases * cote, nbCases * cote) : la taille se calcule à partir des constantes.
Indice 2
Le fond : remplir(terrain, #0F1923), puis grille(terrain, cote, #1C2B3A).
Indice 3
Essayez de colorer la case (19, 19) : elle doit être tout en bas à droite. Et la case (20, 20) ? Elle sort de la toile.
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 terrain est une toile cote est une constante vaut 15 nbCases est une constante vaut 20 @ La grille dimension(terrain, nbCases * cote, nbCases * cote) remplir(terrain, #0F1923) grille(terrain, cote, #1C2B3A) // une case de test : colonne 5, ligne 3 rectangle(terrain, 5 * cote, 3 * cote, cote, cote, #00BA7C) affiche terrain