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 publicités (Blockly)


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 publicités (Blockly)
    Bonsoir,

    Je ne parviens pas à résoudre l'exercice proposé en moins de 20 blocs.
    Les seules instructions disponibles sont listées sur l'image jointe (déplacer vers la gauche, prendre, briqueTransportée, etc.)
    briqueDuDessus: renvoie le numéro de type de la brique au sommet de la colonne au dessus de laquelle se trouve la grue.
    briqueTransportee: renvoie le numéro de type de la brique transportée par la grue.
    le reste est explicite.

    Les types de briques sont les suivants (dans l'ordre de déplacement): Eau = 4; Chocolate = 2 ; Fresh = 3 ; Soft = 5. Le Coca (type 1) n'a pas à être déplacé.

    Je n'ai pas le droit/le moyen d'utiliser de variable, donc de décrémenter une limite de boucle. (ici: répéter n fois... faire)

    Mon algorithme est fonctionnel, mais trop long.
    Si le coeur vous en dit, j'apprécierais un peu d'aide.
    Merci.
    Images attachées Images attachées  

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 332
    Par défaut
    Bonjour ,
    Concernant ceci : 'Les types de briques sont les suivants (dans l'ordre de déplacement): Eau = 4; Chocolate = 2 ; Fresh = 3 ; Soft = 5. Le Coca (type 1) n'a pas à être déplacé.'
    A moins que tu ai un énoncé que je n'ai pas , je comprend pas ce point déjà :p

    Au passage tu fais exprès de te déplacer sur la dernière pile , mais c'est deux blocs de trop
    Tu peux commencer depuis la pile coca , tu décales à droite et la tu fais ton algo
    Pardon , 1 block d'économiser logiquement

    En outre , un block doit être décalé autant de fois que (numero de colonne - 2)
    Coca : 2-2 =0
    Soft Drink : 3-2 = 1
    Fresh : 4-2=2
    Etc ...
    Donc si jamais il te manque des blocs dans ton illustration style : numéro de colonne , ca pourrait aider pas mal
    Merci d'avance

  3. #3
    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 Gabi7756,

    les briques ont chacune un type:
    Coca type 1; Chocolate type 2; Fresh type 3; Eau type 4; Soft type 5.

    Selon l'image, je dois déplacer les colonnes de briques vers ces colonnes:
    Eau de colonne 6 vers colonne 10 (donc déplacement de 4 cases),
    Chocolate de colonne 5 vers colonne 8 (donc déplacement de 3 cases),
    Fresh de colonne 4 vers colonne 6 (donc déplacement de 2 cases),
    Soft de colonne 3 vers colonne 4 (donc déplacement de 1 case),

    si la solution est de déplacer les briques par colonnes, en commençant par l'eau (puisque les cases d'arrivée ne sont pas disponibles pour Soft et Fresh),
    et d'utiliser l'instruction "brique transportée" dans une condition,
    on obtient l'ordre de déplacement suivant: Eau, Chocolate, Fresh, Soft
    soit selon le type: 4 (Eau), 2 (Chocolate), 3 (Fresh), 5 (Soft)

    Les tests "si alors sinon" sont très consommateurs de blocs. Peut-on s'en passer? J'ai fait l'algo de déplacement sans tests, il est aussi trop long!

    Merci de me consacrer du temps!

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 332
    Par défaut
    Ah oui j'ai pas trop réfléchi oups désolé
    Mais merci pour ta réponse
    Si tu as vraiment mis en illustration tout les blocs que tu peux utiliser, bah la je sèche
    Je regarderai cette aprèm en tout cas
    Bon courage

  5. #5
    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
    Voici la situation finale à obtenir, avec l'algorithme sans tests (31 blocs pour 20 autorisés)

    Si on pouvait décrémenter la variable de boucle...

    Bon après-midi!
    Images attachées Images attachées  

  6. #6
    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
    Citation Envoyé par gabi7756 Voir le message
    Donc si jamais il te manque des blocs dans ton illustration style : numéro de colonne , ca pourrait aider pas mal
    Merci d'avance
    Bonsoir Gabi7756,

    Non, tout est là, comme sur l'illustration.

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Bonjour
    Citation Envoyé par Mintzalagun64 Voir le message
    j'apprécierais un peu d'aide
    En fait, vu ce que l'on t'impose (la colonne numéro 2 et surtout "pas de variable") cela n'a rien à voir avec python ! ils inventent un langage sans aucun rapport avec python.

    Tu ferais mieux de poser la question dans le forum algo

    #####################

    Pour comprendre la problèmatique, la première chose est de bien poser le problème et de l'écrire en mode texte de façon naive*.
    "naive": notre premier shéma mental sans la contrainte des 20 blocks
    Par exemple, un texte du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Pour chaque ligne (3)  # ? boucle sur ligne placée ici ?
      col 6 -> col 10    prendre deplace(+4) poser
      retour -5
      col 5 -> col 8    prendre deplace(+3) poser
      retour -4
      col 4 -> col 6     prendre deplace(+2) poser
      retour -3
      col 3 -> col 4 (+1) prendre poser
    Mais, puisqu'il n'existe pas de variable ? (pas trop de sens dans un langage informatique) impossible d'utiliser cette variance incrémentée dans un sens et décrémentée dans l'autre

  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
    Merci papajoker pour tes idées.
    Moi aussi, je travaille d'abord en pseudo-code!

    Voici l'offre d'assistance de Citizen Code:

    Vous trouverez ci-dessous l'une des solutions possibles pour cet exercice:

    from robot import * for loop in range(5): droite() prendre() for loop in range(6): droite() poser() for loop in range(11): gauche() prendre() for loop in range(5): droite() poser()
    Je ne vois pas du tout comment cet algorithme-là pourrait donner la solution!

  9. #9
    Membre Expert Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 548
    Par défaut
    Il semblerait que la question vienne d'une formation qui se nome citizen code python. Ce qui pourrait justifier la présence de ce fil de discussion.
    Il semble qu'ils mélangent pseudo-code et python.

  10. #10
    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 gabriel21,

    Ce n'est pas vraiment une formation. C'est accessible par ce lien, si vous voulez regarder.
    Il s'agit bien de Python, car on peut fournir les réponses en code python, ou en nocode Blockly.

    https://www.amazonfutureengineer.fr/citizencodepython

  11. #11
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par Mintzalagun64 Voir le message
    Je ne vois pas du tout comment cet algorithme-là pourrait donner la solution!
    Si tu ne formates pas ton texte ici en python, il est impossible de comprendre ton code python
    ps: "prendre" est prendre toute la colonne ??? je supposais que c'était prendre qu'un élément

    Le code que tu montres c'est juste (un début ?):
    - aller colonne 6, prendre
    - aller colonne 12, lacher
    - aller colonne 1, prendre # pourquoi cette colonne ?
    - aller colonne 6, déposer # 6 qui est maintenant libre

    ps: A voir où débute la pince ? à gauche ou comme sur l'image, colonne 2 ???

    un code python presque similaire, peut éventuellement fonctionner : si l'ordre des colonnes n'a pas obligation d'être le même: je n'ai qu'a créer 2 trous : je déplace que No3 et No5

    Ils ne font que transformer leur peuso langage en code python. Aucun intérêt à regarder le code généré tellement leur langage est limité. C'est juste pour ensuite exécuter une démo visuelle avec leur langage; que leur moteur soit en python, javascript ou autre ne change strictement rien pour toi et l'algo.

    Il faut voir que ne pas utiliser de variable n'a aucun sens lorsque l'on code (d'alleur, ils en utilisent une (loop) dans le code python )
    EDIT: je ne serais pas aussi dur que "gabi" au message suivant, je pense que c'est une bonne approche de l'algo mais malheureusement puisque pas de variable (mais va peut-être évoluer plus tard ?) : c'est justement ce qu'il ne faut pas faire dans un langage de programmation.

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 332
    Par défaut
    Autant faire ca en algorithme que tu transformes en python
    Parce que navré mais leur truc de pseudo-code
    Ca satisfait personne

    Rassure moi au moins et dit moi que c'est pas l'éducation nationnale qui conseille ce truc ?

  13. #13
    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
    papajoker,

    Si tu ne formates pas ton texte ici en python, il est impossible de comprendre ton code python
    J'ai seulement copié/collé la réponse de Citizen Code à ma demande de solution. Mais même en la tournant dans tous les sens, elle est inapplicable.

    - On ne peut pas prendre toute une colonne, seulement brique par brique
    - le code que je montre, c'est juste pour vous donner ce qui est présenté comme une solution officielle, de la part du site Citizen Code!
    - la grue démarre comme sur l'image la plus ancienne, colonne 2 (d'où un premier déplacement de 4 cases pour la placer au dessus de l'eau, colonne 6)
    - l'ordre des colonnes doit être respecté
    - c'est juste un défi à relever, avec les armes/instructions qui me sont données!

  14. #14
    Invité de passage
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2021
    Messages : 1
    Par défaut Solution
    Il suffit de mettre une variable i dans la boucle initiale

    for loop in range(4):
    droite()
    for i in range(4): #i = [0;1;2;3]
    for loop in range(3):
    prendre()
    for loop in range(4-i):
    droite()
    poser()
    for loop in range(4-i):
    gauche()
    gauche()

  15. #15
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Déterrer un sujet avec une mauvaise solution
    Lire la demande est un plus
    Je n'ai pas le droit/le moyen d'utiliser de variable
    ps: Attention, un code python non formaté n'a aucune valeur (puisque sans blocs) utilisez la balise CODE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande solution Citizen Code S01 E07 Les conserves
    Par Mintzalagun64 dans le forum Général Python
    Réponses: 10
    Dernier message: 09/05/2025, 01h18
  2. Solutions pour protéger les publicités sur Internet des AdBloqueurs
    Par David Willems dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 24/05/2017, 14h09
  3. [IPTV - Video on demand] solutions /architectures?
    Par julseb dans le forum Vidéo
    Réponses: 1
    Dernier message: 21/11/2005, 08h57
  4. 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
  5. [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