CoddyRun

Parcours Le labyrinthe Étape 1

Étape 1 sur 6

Un labyrinthe écrit en texte

Décrire un labyrinthe par neuf lignes de texte, puis le dessiner case par case : murs, couloirs, départ et sortie.

Notions :tableau de textesdouble indexboucles imbriquées

Le résultat final du parcours : Le labyrinthe
Le résultat final du projet
Ce qu'il faut savoir

Comment donner un labyrinthe à un ordinateur ? Le plus simple est de le dessiner avec des caractères :

###########
#D  #     #
# # # ### #
  • # est un mur ;
  • une espace est un couloir ;
  • D est le départ, S la sortie.

Chaque ligne est un texte, et on range les 9 lignes dans un tableau, plan.

Lire une case

plan[lig] est la ligne n° lig (les tableaux commencent à 0). Et dans cette ligne, le caractère de la colonne col est plan[lig][col + 1], car les textes commencent à 1. Les deux règles se combinent dans la même expression.

Dessiner

Deux boucles imbriquées parcourent les 9 lignes et les 11 colonnes. Chaque case fait 30 pixels : elle se dessine en col * 30, 30 + lig * 30. On garde une bande de 30 pixels en haut pour afficher des informations plus tard.

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

Déclarez lab est une toile (330 × 300), plan est un tableau et caseTxt est un texte.

Indice 2

Toutes les lignes du plan doivent avoir exactement 11 caractères, sinon le dessin se décale.

Indice 3

Dans la boucle : caseTxt vaut plan[lig][col + 1], puis trois cas selon le caractère.

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
lab est une toile
plan est un tableau
caseTxt est un texte

@ Le plan
plan ajoute "###########"
plan ajoute "#D  #     #"
plan ajoute "# # # ### #"
plan ajoute "# #   #   #"
plan ajoute "# ##### # #"
plan ajoute "#     # # #"
plan ajoute "### # # # #"
plan ajoute "#   #   #S#"
plan ajoute "###########"

@ Le dessin
dimension(lab, 330, 300)
remplir(lab, #1E272E)
pour lig de 0 à 8
    pour col de 0 à 10
        caseTxt vaut plan[lig][col + 1]
        si caseTxt = "#" alors
            rectangle(lab, col * 30, 30 + lig * 30, 30, 30, #485460)
        sinon si caseTxt = "S" alors
            rectangle(lab, col * 30, 30 + lig * 30, 30, 30, #00BA7C)
        sinon
            rectangle(lab, col * 30, 30 + lig * 30, 30, 30, #F5F6FA)
        fin si
    fin pour
fin pour
affiche lab

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