Aide exercice Python sur site citizen code

Résolu
Eriito Messages postés 1 Date d'inscription vendredi 14 mars 2025 Statut Membre Dernière intervention 14 mars 2025 - Modifié le 17 mars 2025 à 15:57
mamiemando Messages postés 33653 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 3 mai 2025 - 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

jordane45 Messages postés 38471 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 mai 2025 4 742
14 mars 2025 à 06:26

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 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 Ambassadeur 1 579
16 mars 2025 à 09:58

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

0
mamiemando Messages postés 33653 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 3 mai 2025 7 846
17 mars 2025 à 16:17

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

0