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

Scheme Discussion :

Robot dans un labyrinthe


Sujet :

Scheme

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Robot dans un labyrinthe
    bonjour, on aurait besoin d'aide pour réaliser un projet sur un robot qui se deplace dans un labyrinthe, le but du projet est de le sortir en effectuant le minimum de pas possible. pour celà, il est equipé d'un podomètre, ainsi que d'un capteur indiquant dans quelle direction le robot regarde (sachant qu'il connait les 4points cardinaux).
    le robot doit tourner d'un quart de tour à droite à chaque fois qu'il est face à un mur, sinon si face à lui il y a un vide, il avance d'un pas, et le podomètre s'incremente + 1.
    si quelqu'un peut nous aider, on a dejà la base 0 du projet, ainsi que quelques idées d'améliorations.
    merci d'avance (sauvez nous la vie!!!!)
    PS: le projet est à rendre le 12janvier 2008

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Tel que tu décris la progression du robot, il n'y a pas vraiment de possibilités de choix, il trouvera la sortie, mais ce n'est pas forcément le plus court chemin. Il peut même se retrouver à son point de départ, si par hasard, le bon chemin est à gauche et non pas à droite. Peut-être n'as tu pas énoncé toutes les règles ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    en effet, si le robot se trouve à un point où par exemple sur les trois chemins possibles il en a dejà emprunté 2, il est obligé d'emprunter le troisième. et puis en général le robot prend forccement le chemin à sa droite, sauf donc s il l'a dejà emprunté il tourne encore d un quart de tour.
    il nous manque les fonctions "tourner", "avancer" "boussole", et eventuellement "podomètre" à inserer dans la base 0.
    je vous envoie la base 0 de projet, ça pourra peut etre vous eclairer un peu plus:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    (define base '(
                 ((mur sud) (tourner))
                 ((mur ouest) (tourner))
                 ((mur nord) (tourner))
                 ((mur est) (tourner))
                 ((vide sud) (avance))
                 ((vide ouest) (avance))
                 ((vide nord) (avance))
                 ((vide est) (avance))
              )
                 )
    (define (decide etat percept)
      (evolue etat percept base) )
    (define (evolue etat percept rules)
      (if (null? rules) etat
          (let* ( (first (car rules))
                 (reste (cdr rules))
                 (ok    (element etat percept first))
                 )
            (if ok (nextstate first) (evolue etat percept reste)))
          )
      )
    (define (element x y rule)
      (let ( (condition (car rule)) )
        (or (equal? x 'avance)
            (and (elem? x condition) (elem? y condition)))))
    
    
    (define (elem? x l)
      (cond ((null? l) #f)
            ((equal? x (car l)) #t)
            (else (elem? x (cdr l)))))
    
    (define (nextstate rule)
      (caadr rule))
    
    
    (define (evolution cstate listE)
      (if (null? listE) cstate
          (evolution (decide cstate (car listE)) (cdr listE))))

  4. #4
    Membre régulier Avatar de +Guilhem
    Profil pro
    Ingénieur d'études Java/JEE
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études Java/JEE

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Points : 112
    Points
    112
    Par défaut
    Trap D a raison, il va trouver le bon chemin mais ce ne sera (sûrement) pas le plus court.

    Pourquoi ne pas calculer d'abord le plus court chemin PUIS faire avancer le robot ?

    P.S. : Utilise la balise [CODE] quand tu mets du code, sinon c'est illisible.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    pitié il faut que vous nous aidiez... on est vraiment dans la merde

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    oui on y a pensé aussi, mais le problème c'est qu'on est tellement nulles en programation que d'abord on est pas capables de le faire, et en plus le prof le saurai si notre projet est compliqué qu'on s'est faites aidé!!!
    vous pouvez nous aider????

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par afaf06 Voir le message
    oui on y a pensé aussi, mais le problème c'est qu'on est tellement nulles en programation que d'abord on est pas capables de le faire, et en plus le prof le saurai si notre projet est compliqué qu'on s'est faites aidé!!!
    vous pouvez nous aider????
    Ton problème n'a rien à voir avec la programmation. C'est encore un problème d'algorithmie. Tu n'as pas d'algorithme correct : tu ne peux espérer en faire un programme.

    Commence pas chercher l'algorithme (dans le forum idoine si tu veux) puis quand tu auras un problème pour le coder en Scheme, tu pourras venir demander de l'aide ici.

    De plus si ton but est de leurrer ton prof, tu n'es pas prêt d'obtenir de l'aide de ma part. Se faire aider n'est pas grave si tu comprends et que tu fais ta part des choses. Par contre plagier (faire passer pour soi, ce qui est aux autres) c'est grave. Il serait peut être intéressant d'en parler à ton prof en premier non ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    bien sûr qu'on comprend ce qu'on fait et qu'on essaie de faire qqc, le problème c'est qu'au bout de 3mois de programmation à frequence de 1h30 par semaine, on ne se sent pas vraiment capables de faire grand chose, surtout la syntaxe... on a fait les fonctions qui nous manque, le problème c'est que c'était mal ecrit, donc faux... merci pour ton encouragement

  9. #9
    alex_pi
    Invité(e)
    Par défaut
    Il est impossible, avec une vision locale du labyrinthe de déterminer un chemin optimal. Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
      1             2
     | |           | |
     | |           | |
     | |           | |
     | |___________| |
     |_______R_______|
    Maintenant tu peux mettre la sortie en 1 ou en 2, et un long couloir de l'autre. Le robot, depuis sa position ne peux pas choisir. Il est donc impossible d'avoir un algo qui donne le meilleur résultat dans tous les cas.

    De plus, si tu n'a pas d'assurance qu'il n'y a pas de cycle dans ton labyrinthe et que tu ne peux pas mettre de marque (poser un petit caillou ou une fleche...), je ne pense pas qu'il existe d'algorithme déterministe qui fonctionnera.

    Bref, je confirme ce qui a été dit plus haut, avant de crier à l'aide sur un forum Scheme, prend un papier, un crayon, dessine des labyrinthe, et demande toi quel *algorithme* tu peux appliquer pour sortir de ton labyrinthe avec une vision locale des murs (dans le cas de l'absence de cylcle, il existe une méthode très connue, ça ne devrait vraiment pas poser de problème !)

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par afaf06 Voir le message
    bien sûr qu'on comprend ce qu'on fait et qu'on essaie de faire qqc, le problème c'est qu'au bout de 3mois de programmation à frequence de 1h30 par semaine, on ne se sent pas vraiment capables de faire grand chose, surtout la syntaxe... on a fait les fonctions qui nous manque, le problème c'est que c'était mal ecrit, donc faux... merci pour ton encouragement
    Qui a dit que vous ne comprenez pas ce que vous faites ? Ce n'est pas ce que j'ai dit. Où est votre conception ? Mais où est l'algorithme ?

    Je suis convaincu que vous n'avez pas une bonne conception. Vous devriez commencer par là. Une fois que vous avez cet algorithme, ce sera beaucoup plus facile. Allez donc poser la question dans la partie sur les algorithmes.

    Puis après, le codage se fera aisément.

    Au passage, 1h30 par semaine pendant 3 mois, c'est ridicule (sans être nullement offensant). Ça fait seulement, 18h. En général je demande au moins 5h/semaine à mes étudiants. Et les sessions durent 15 semaines, i.e. 75h de travail personnel. Certains petits projets dans le cadre demandent environ 18h par semaine par personne.

  11. #11
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Au passage, 1h30 par semaine pendant 3 mois, c'est ridicule (sans être nullement offensant). Ça fait seulement, 18h. En général je demande au moins 5h/semaine à mes étudiants. Et les sessions durent 15 semaines, i.e. 75h de travail personnel. Certains petits projets dans le cadre demandent environ 18h par semaine par personne.
    Je pense justement qu'il dit qu'il n'a eu que ça comme cours, qu'il trouve aussi que c'est très peu, et que c'est pour ça qu'il a du mal, àmha

  12. #12
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Je pense justement qu'il dit qu'il n'a eu que ça comme cours, qu'il trouve aussi que c'est très peu, et que c'est pour ça qu'il a du mal, àmha
    Je pense que c'est "elle"
    oui on y a pensé aussi, mais le problème c'est qu'on est tellement nulles en programation que d'abord on est pas capables de le faire, et en plus le prof le saurai si notre projet est compliqué qu'on s'est faites aidé!!!
    vous pouvez nous aider????
    Ceic dit sans être offensant le moins du monde.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Je pense justement qu'il dit qu'il n'a eu que ça comme cours, qu'il trouve aussi que c'est très peu, et que c'est pour ça qu'il a du mal, àmha
    Ah oui.. j'ai peut-être mal compris effectivement ^_^

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

Discussions similaires

  1. Utopie sur la création de robots dans le futur ?
    Par RobotMaster dans le forum Robotique
    Réponses: 1
    Dernier message: 07/04/2012, 23h59
  2. Utilisation de la classe Robot dans une Applet
    Par LinuxUser dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/08/2011, 17h46
  3. Programme de calcul des solutions dans un labyrinthe
    Par cocorico88 dans le forum Général Java
    Réponses: 0
    Dernier message: 14/11/2009, 14h55
  4. probleme de connexité dans un labyrinthe
    Par gnouz dans le forum C
    Réponses: 13
    Dernier message: 06/03/2008, 19h36
  5. Trouver son chemin dans un labyrinthe
    Par APoLLoN1234 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 03/11/2005, 22h34

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