Aide exercice Python sur site citizen code
Résolulienalo Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
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.
- Citizen code python solution
- Citizen code python avis - Accueil - Outils
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
4 réponses
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
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 ?
C'est un exercice de boucles imbriquées, et tu n'as fait aucune imbrication.
Hello ! Personnellement j'ai réussi à le faire en tout juste 25 blocs comme ceci :
from robot import * for loop in range (4): for loop in range (5): droite() prendre() gauche() poser() droite() for loop in range (4): gauche() prendre() for loop in range (5): droite() poser() gauche() for loop in range (4): for loop in range (4): gauche() prendre() for loop in range (4): droite() poser() droite() prendre() gauche() poser()
Mais il y a potentiellement moyen de le faire en moins de blocs