IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Demande solution Citizen Code S01 E07 Les conserves


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2024
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2024
    Messages : 19
    Par d�faut Demande solution Citizen Code S01 E07 Les conserves
    Bonjour,
    Je ne parviens pas � faire l'exercice en moins de 20 blocs d'instructions. Ma proposition est fonctionnelle. Le th�me de l'exercice est "imbrications".
    Veuillez trouver en pi�ces jointes l'�nonc�, et ce que j'ai fait.

    Les instructions disponibles sont:
    droite() gauche()
    prendre() poser()
    if elif else
    hauteurColonne
    for

    Merci de m'indiquer une solution, �ventuellement en pseudo-code!
    Cordialement
    JB
    Images attach�es Images attach�es   

  2. #2
    Expert confirm�
    Avatar de tyrtamos
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2007
    Messages
    4 486
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par d�faut
    Bonjour

    Je n'ai jamais fais �a, mais � mon avis, il faut d�j� identifier chaque boite par son adresse d�part (ligne, colonne) et arriv�e (ligne2, colonne2)

    Par ailleurs, le codage est plus facile en Python quand les indices des lignes et des colonnes commencent par z�ro.

    Enfin, il faut que l'ordre dans lequel le calcul des adresses est faite, permette au robot de prendre et d�poser les boites, ce qui suppose qu'elle ne sont recouvertes par rien � chaque fois.

    Voil� comment je ferais:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    for ligne in range(4, 0, -1):
        for colonne in range(7, 7+ligne):
            ligne2 = 4-ligne
            colonne2 = colonne-4
            print(ligne, colonne, "===>", ligne2, colonne2)
    Ce qui donne:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    4 7 ===> 0 3
    4 8 ===> 0 4
    4 9 ===> 0 5
    4 10 ===> 0 6
    3 7 ===> 1 3
    3 8 ===> 1 4
    3 9 ===> 1 5
    2 7 ===> 2 3
    2 8 ===> 2 4
    1 7 ===> 3 3
    Il ne reste plus qu'� ordonner les actions prendre et d�poser

    Si l'ordre � donner au robot est plus "basique" (genre "bouger d'une case � droite"), le code ci-dessus devrait �tre facile � adapter.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 846
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 846
    Billets dans le blog
    1
    Par d�faut
    Bonjour

    Oui ta proposition est fonctionnelle mais emplie de r�p�titions inutiles. Tu fais boucle(4), boucle(3) puis boucle(2). Or si on num�rote les lignes depuis le bas, � la ligne 1 il y a une boite, � la ligne 2 il y en a 2, � la ligne 3 il y en a 3 bref � la ligne "n" il y aura "n" boites de tomates.
    Donc je partirais sur un for lig in range(1, 5) puis un for boite in col(1, lig+1). Ne reste qu'� trouver l'�quation math�matique qui associe boite(lig, col)boite(lig2, col2) et comme ici c'est une rotation d'angle pi/2, �a ne devrait pas �tre tr�s loin de lig2=col et col2=lig.
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert confirm�
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    D�cembre 2008
    Messages
    4 246
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 4 246
    Par d�faut
    Hello,
    Tyrtamos et Sve@r vous n'avez pas tous les �l�ments pour r�pondre car Mintz ne vous a pas tout dit. Voici un d�but de code python qui montre comment cela fonctionne :

    Nom : Conserves.gif
Affichages : 6082
Taille : 183,2 Ko

    sachant que vous avez le droit au if et que hauteurColonne indique combien il y a d'�l�ments dans une colonne (A tester quand la grue est au dessus de la colonne).

    Ami calmant, J.P

  5. #5
    Expert confirm�
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    D�cembre 2008
    Messages
    4 246
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 4 246
    Par d�faut
    Citation Envoy� par Mintzalagun64 Voir le message
    Bonjour,
    Je ne parviens pas � faire l'exercice en moins de 20 blocs d'instructions. Ma proposition est fonctionnelle. Le th�me de l'exercice est "imbrications".
    Merci de m'indiquer une solution, �ventuellement en pseudo-code!
    Comme on le voit dans ton code il y a des boucles qui se suivent avec pour seule diff�rence le nombre de boucles qui se d�cr�mente. Il suffit de rajouter une boucle par dessus qui d�cremente une variable qui sert � d�finir le nombre de fois des instructions de d�placement des bo�tes ( c'est pas tr�s claire comme explication) . Le code c'est plus facile � comprendre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from robot import *
    for x in range(7): droite()
    for z in range(4,0,-1):
        for x in range(z):
            prendre()
            for y in range(4): gauche()
            poser()
            for y in range(4): droite()
        droite()
    A noter que l'on a pas le droit d'utiliser des variables sauf celles qui sont dans un for. (affectation de variable interdite)


    Ami calmant, J.P

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 846
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 846
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par jurassic pork Voir le message
    Voici un d�but de code python qui montre comment cela fonctionne :
    Je comprends mieux l'id�e.
    Donc ce serait "r�p�ter 4 fois un d�placement de n boites de 4 rangs vers la gauche"
    Donc (en imaginant qu'on part avec le crochet plac� en colonne 11)
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for i in range(4):
        for j in range(i+1):
            prendre()
            for k in range(4): gauche()
            poser()
            for k in range(4): droite()
        # for
        gauche()
    # for
    A vue de nez �a me semble pas trop mal...
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert confirm�
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    D�cembre 2008
    Messages
    4 246
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 4 246
    Par d�faut
    Citation Envoy� par Sve@r Voir le message
    J
    A vue de nez �a me semble pas trop mal...
    Sve@r ta solution fonctionne aussi en ajoutant en premi�re ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for x in range(10): droite()
    pour positionner la grue en colonne 11

  8. #8
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2024
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2024
    Messages : 19
    Par d�faut
    Bonjour,

    Un grand merci � tous les trois, tyrtamos, Jurassic Pork et Sve@r, pour vos r�ponses.

    il me reste � coder l'algorithme de tyrtamos, avec ce que vous m'avez appris (et que la documentation Citizen Code n'indique pas: ainsi, je pensais que l'instruction "For loop in range(n)" �tait "grav�e dans le marbre").

    Bonne soir�e!
    Images attach�es Images attach�es  

  9. #9
    Invit� de passage
    Homme Profil pro
    Chirurgien Dentiste
    Inscrit en
    Janvier 2025
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Chirurgien Dentiste
    Secteur : Sant�

    Informations forums :
    Inscription : Janvier 2025
    Messages : 1
    Par d�faut Demande d'aide exo du rayon
    Merci pour votre r�ponse pour cet exo, mais je suis bloqu� sur l'exo du Rayon de la m�me saison.
    Mintzalagun64 si tu pouvais me donner la solution, je ne compte plus les heures a me casser la t�te dessus..

  10. #10
    Membre Expert
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2003
    Messages
    1 605
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 1 605
    Par d�faut
    Bonjour.

    Il est inutile de venir polluer ce topic avec une question diff�rente de celle pos�e.

    Votre question va manquer de visibilit� et il y a peu de chances que l'on vous r�ponde.

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2010
    Messages
    58
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2010
    Messages : 58
    Par d�faut
    Bonjour,

    Avec retard, voici ma solution:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    from robot import *
     
    for loop in range(3):
        droite()
     
    for i in range(5):
        for j in range(4-i):
            for loop in range(4):
                droite()    
            prendre()
            for k in range(4):
                gauche()
            poser()
            droite()
        for z in range(4-i):
            gauche()

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 6
    Dernier message: 29/10/2015, 15h24
  2. [IPTV - Video on demand] solutions /architectures?
    Par julseb dans le forum Vid�o
    R�ponses: 1
    Dernier message: 21/11/2005, 08h57
  3. Pb avec code source "lister les images d'un dossier"
    Par Mimisator dans le forum Langage
    R�ponses: 2
    Dernier message: 19/10/2005, 15h25
  4. [JVM] interactions jvm - code : agir sur les paramètres ?
    Par pierre.zelb dans le forum G�n�ral Java
    R�ponses: 6
    Dernier message: 07/07/2005, 13h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo