Partage
  • Partager sur Facebook
  • Partager sur Twitter

Activité Roboc - Python - Labyrinthe

    28 février 2019 à 9:32:02

    Bonjour !

    Je suis en train de faire le cours sur python et plus précisément je suis en train de faire la partie 1 de l'activité du labyrinthe.

    lien vers l'activité : http://exercices.openclassrooms.com/assessment/159?id=235344&slug=apprenez-a-programmer-en-python&login=8750195&tk=82d497583825b9476f209db388bf7892&sbd=2016-02-01&sbdtk=fa78d6dd3126b956265a25af9b322d55

    j'ai un problème pour faire bouger le personnage dans le labyrinthe voici mon code actuel:

    #coding:UTF-8
    
    import os
    import pickle
    
    
    def labyrinth(niveau):
        try:
            niveau = int(niveau)
            assert 0 < niveau < 3
        except ValueError:
            print('Il faut choisir un chiffre')
        except AssertionError:
            print('Le chiffre doit être 1 ou 2')
        if niveau == 1:
            with open('facile.txt', 'r') as facile:
                contenu_facile = facile.read()
                return contenu_facile
        elif niveau == 2:
            with open('prison.txt', 'r') as prison:
                contenu_prison = prison.read()
                return contenu_prison
    
    #fonction permettant de transformer le labyrinthe en liste
    
    def strToList(niveau_str):
        niveau_list = niveau_str.split('\n')
        return niveau_list
    
    #Recuperé les lignes et les colonnes du labyrinthe
    
    def positionLabyrinth(list_object, position):
        for index_ligne, lignes in enumerate(list_object):
            for index_colonne, colonnes in enumerate(lignes):
                if colonnes == position:
                    return index_ligne, index_colonne
    
    ############################################################################
    
    partie = labyrinth(1)
    labyrinthe = strToList(partie)
    while True:
        perso = 'X'
        x_perso, y_perso = positionLabyrinth(labyrinthe, perso)
    
        print('\n'.join(labyrinthe))
        #print(type(labyrinthe_liste[x_perso][y_perso])) str
        #print(type(labyrinthe_liste)) list
        deplacement_joueur = input('deplacement: ')
    
    
    #Permet de vérifier les cases autour du joueur
    
        if deplacement_joueur == 'e':
            print(labyrinthe[x_perso] [y_perso + 1]) #affiche la case à droite
        elif deplacement_joueur =='o':
            print(labyrinthe[x_perso] [y_perso - 1]) #affiche la case à gauche
        elif deplacement_joueur == 'n':
            print(labyrinthe[x_perso - 1] [y_perso]) #affiche la case au dessus
        elif deplacement_joueur == 's':
            print(labyrinthe[x_perso + 1] [y_perso]) #affiche la case en dessous

    La dernière partie du code me permet de voir les cases autour du joueur, mais impossible le faire bouger.

    Est ce que quelqu'un pourrait m'aiguiller?

    Merci d'avance!

    • Partager sur Facebook
    • Partager sur Twitter
      15 mars 2019 à 8:51:59

      Je pense qu'il ne faut pas mettre le X dans le fichier TXT.

      Lorsque tu print le laby, tu ajoute le X en fonction de ses coordonnées.

      Et tu change les coordonnées à chaque boucle en fonction de ce qu'entre le joueur.

      -
      Edité par thelinekioubeur 15 mars 2019 à 8:55:41

      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2019 à 13:03:38

        bonjour, j'ai voulu tester ton programme sur le logiciel IDLE de phyton,(dite moi si j'utilise le bon logiciel).Parce que ça me met une erreur à la première ligne.
        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2019 à 15:56:31

          Oui c'est un logiciel fait pour ça.

          Mais si tu ne nous dit pas quelle est ton erreur, je ne vois pas comment on peut te répondre.

          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2019 à 22:28:31

            Ce n'est pas une erreur, c'est une ligne de code.

            Tu as bien un message d'erreur ? Que dit-il ?

            • Partager sur Facebook
            • Partager sur Twitter
              24 juillet 2019 à 7:20:38

              Si tu as mis un I majuscule à import c'est bien une erreur oui :zorro:
              • Partager sur Facebook
              • Partager sur Twitter
                24 juillet 2019 à 10:35:37

                Pour faire bouger le robot, il faut penser : 

                - à enregistrer sa position

                - s'il va au nord, déplacer le X, ce qui veut dire........: 

                1) que la case où il se trouve devient "vide" ou récupère ce qui était là avant le robot (un "O", ou un ".")

                2) que le X se trouve donc à la case à côté. Par exemple s'il doit aller +1 case au Nord, sa nouvelle position c'est -1 sur le numéro de la ligne.

                -
                Edité par Thia 24 juillet 2019 à 10:36:32

                • Partager sur Facebook
                • Partager sur Twitter
                  13 août 2019 à 7:51:42

                  J'ai re tester le programme, il me met : SyntaxError: multiple statements found while compiling a single statement
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 août 2019 à 14:31:15

                    Dans le shell Idle, tu ne peux saisir qu'une commande à la fois.

                    Pour coller tout un script, tu dois créer un fichier Python. Dans Idle, ça se fait depuis le menu File > New File

                    -
                    Edité par Zachee54 13 août 2019 à 14:32:27

                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 août 2019 à 15:04:09

                      Ok j'ai mit le code après je fais quoi ?

                      J'ai appuyer sur run mais aucun résultat 

                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 août 2019 à 12:02:49

                        On ne peut pas répondre à la question si tu ne montres pas ton code.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Activité Roboc - Python - Labyrinthe

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown