Aide exercice Python sur site citizen code

Résolu
Eriito Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33687 Date d'inscription   Statut Modérateur Dernière intervention   17 mars 2025 à 16:17

Bonjour,

Je suis bloqué sur cet exercice :

Comme vous le voyez, je dois finir en 25 lignes avec les commandes suivantes:

  • droite()
  • gauche()
  • prendre()
  • poser()
  • for loop in range ()

Mais à l'heure actuelle, j'arrive que à ranger la colonne 2 avec le code suivant qui fait 24 lignes :

from robot import *
droite()
for loop in range(4):
    prendre()
    gauche()
    poser()
    droite()
prendre()
for loop in range(4):
    droite()
poser()
for loop in range(5):
    gauche()
for loop in range(4):
    prendre()
    droite()
    poser()
    gauche()
for loop in range(5):
    droite()
prendre()
for loop in range(4):
    gauche()
poser()

Pouvez vous m'aider à comprendre ou je fais une erreur ? Merci.

A voir également:

3 réponses

mamiemando Messages postés 33687 Date d'inscription   Statut Modérateur Dernière intervention    

Bonjour,

  • Merci de soigner l'orthographe.
  • Réfléchis à une stratégie avant de coder (comment tu ferais si tu devais l'expliquer avec des mots).
  • Précise comment doivent être replacées les briques. Si j'ai bien compris le château est vu de côté, les briques sont empilées, et tu voudrais permuter les briques de la ligne du bas avec les lignes de la brique du haut.
    • S'autorise-t'on à reconstruire le chateau ailleurs qu'au milieu de la grille ?
  • Il faudrait également préciser ce que fait "poser" (est-ce que l'on peut lâcher une brique en l'air, est-ce que si on pose une boîte, la pince revient à sa place, etc...)

En supposant que j'ai bien compris l'exercice, la stratégie la plus simple consiste à :

Si on s'autorise à décaler le château d'une case vers la gauche, on répète le raisonnement en déplaçant la colonne i+1 vers la colonne i, pour chaque valeur de i allant de 2 à 5 inclus. Cela peut s'écrire comme le suggère yg_be avec deux boucles for imbriquées.

Si on ne s'autorise pas à décaler le château d'une case vers la gauche, il faut rajouter une étape supplémentaire qui permettra de transférer la colonne 1 vers la colonne 5 en préservant l'ordre. En effet, la brique en haut de la colonne 1 est le haut du château et on veut la garder en haut. Du coup, on la met de côté dans la colonne 6. On transfère le reste de la colonne 1 dans la colonne 5. Puis on rapatrie la brique restante dans la colonne 6 en haut de la colonne 5.

Bonne chance

1
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 

bonjour 

pourrais-tu nous détailler un peu ton code ?

que font les différentes instructions prendre gauche droite poser ?

à quoi font référence les valeurs 4 et 5 que tu utilises dans tes boucles ?


0
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention    

C'est un exercice de boucles imbriquées, et tu n'as fait aucune imbrication.

0