CoddyRun

Parcours La bataille navale Étape 1

Étape 1 sur 6

Les deux grilles

Dessiner deux grilles de 10 × 10 avec leurs lettres et leurs numéros, grâce à une seule procédure qui reçoit la position de la grille.

Notions :procédure à paramètresboucles imbriquéescaractère

Le résultat final du parcours : La bataille navale
Le résultat final du projet
Ce qu'il faut savoir

Les deux grilles sont identiques, seule leur position change : votre flotte à gauche en (30, 50), celle de l'adversaire à droite en (310, 50). Une seule procédure les dessine, avec la position en paramètres :

appelle dessinerGrille(30, 50, "Votre flotte")
appelle dessinerGrille(310, 50, "La flotte adverse")

Chaque case fait 23 pixels, avec 1 pixel d'écart : la case de la ligne gl et de la colonne gc commence en ox + gc * 24, oy + gl * 24.

Les lettres et les numéros

On repère les cases comme au jeu sur papier : une lettre pour la colonne, un numéro pour la ligne. caractère(65 + gc) donne la lettre : 65 est le code de « A », 66 celui de « B »… jusqu'à « J » pour la colonne 9.

Code de départ

Ouvrez CoddyRun et partez d'un programme vide : tout commence ici.

Pas encore CoddyRun ?

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écharger
Besoin d'aide ?
Indice 1

La toile fait 560 × 335 pixels : deux grilles de 240 pixels, plus les marges.

Indice 2

Les numéros se placent 18 pixels à gauche de la grille : ox - 18.

Indice 3

Les variables de boucle gl et gc sont propres à 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

@ Le dessin d'une grille
procédure dessinerGrille(ox, oy, titre)
    label(jeu, ox, oy - 26, titre, #FFFFFF, 14)
    pour gc de 0 à 9
        // les lettres A à J au-dessus des colonnes
        label(jeu, ox + gc * 24 + 7, oy - 5, caractère(65 + gc), #85C1E9, 11)
    fin pour
    pour gl de 0 à 9
        label(jeu, ox - 18, oy + gl * 24 + 16, convertir_texte(gl + 1), #85C1E9, 11)
        pour gc de 0 à 9
            rectangle(jeu, ox + gc * 24, oy + gl * 24, 23, 23, #1B4F72)
        fin pour
    fin pour
fin procédure

@ Programme principal
dimension(jeu, 560, 335)
remplir(jeu, #0B1F33)
appelle dessinerGrille(30, 50, "Votre flotte")
appelle dessinerGrille(310, 50, "La flotte adverse")
affiche jeu

Ce parcours te plaît ?

Crée ton compte gratuit et construis le projet en entier, étape par étape.

Créer mon compte gratuit J'ai déjà un compte