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

 C Discussion :

simulation d'un robot dans un labyrinthe


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Points : 0
    Points
    0
    Par défaut simulation d'un robot dans un labyrinthe
    Bonjour! je suis un débutant en programmation en c et j'ai pour projet: "simulation d'un robot dans un labyrinthe". Je suis parvenu à réaliser le labyrinthe mais je coince au niveau de l'affichage du robot dans le labyrinthe et à son déplacement dans ce labyrinthe.
    Le robot devra avoir ces différents aspects suivant son déplacement dans le labyrinthe : "<",">","v","^", désignant respectivement "gauche", "droite", "bas", "haut"
    et doit être muni de trois capteur permettant de savoir s'il fait face à un obstacle ou non.
    Je voudrais solliciter dans la mesure du possible un code effectuant cela!!
    Merci d'avance!!!!

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Citation Envoyé par DebutantProg Voir le message
    Je voudrais solliciter dans la mesure du possible un code effectuant cela!!
    Demandé très poliment... mais cela ne change rien. C'est contraire aux règles du forum (paragraphe IV.N). Tu veux un code pour le donner à ton prof et avoir une bonne note ou un code pour le tavailler et le comprendre ?

    Citation Envoyé par DebutantProg Voir le message
    Je suis parvenu à réaliser le labyrinthe mais je coince au niveau de l'affichage du robot dans le labyrinthe et à son déplacement dans ce labyrinthe.
    Peut-être parce que tu as commencé par réaliser l'affichage du labyrinthe sans penser qu'il faudrait afficher le robot.
    Le plus simple, c'est
    1. positionner le robot dans une image mémoire du labyrinthe (une sorte de tableau de char [][] qui aurait par exemple '0' pour vide, '1' pour mur et 'G', 'D', 'H' et 'B' pour robot gauche, robot droite, robot haut, robot bas)
    2. afficher ensuite cette image à l'écran.

    Ensuite, quand le robot se déplace, tu changes sa position dans le tableau, tu effaces tout et tu réaffiches tout. Ce sera saccadé mais ça fonctionnera...

    Citation Envoyé par DebutantProg Voir le message
    et doit être muni de trois capteur permettant de savoir s'il fait face à un obstacle ou non.
    Pourquoi 3 ??? Un capteur suffit pour détecter un obstacle devant soi non ???
    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]

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    En fait il doit etre capable de détecter des obstacles à gauche et à droite également

    Je me suis mal fait comprendre alors, mon intention n'est pas de prendre le code l'utiliser pour gagner des points mais plutôt le comprendre entièrement, j'ai même commencé le programme et je l'ai souligné

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par DebutantProg Voir le message
    En fait il doit etre capable de détecter des obstacles à gauche et à droite également
    En théorie 3 capteurs c'est inutile pour 2 raisons
    1. si ton programme gère à la fois le labyrinthe, et à la fois le robot, alors le robot connait toujours son environnement (il lui suffit de regarder "où je suis" et "que me dit la map")
    2. imaginons maintenant un robot qui soit isolé (tu fais en sorte qu'il ne connaisse pas la map), alors à l'entrée du labyrinthe il lui suffit de coller sa main gauche sur un mur et partir tout en laissant la main collée au mur. Fatalement il arrivera à un moment ou à un autre à la sortie (algorithme de la main gauche, qui fonctionne aussi avec la main droite)

    Donc dans le premier cas, pas besoin de capteur, et dans le second cas, un capteur à gauche (ou à droite) et un devant (pour détecter un coude) suffit. Le 3° capteur n'est pas nécessaire (il peut juste lui permettre de détecter un cul de sac plus rapidement car si bloqué de 3 côtés alors demi-tour, chose qui se fait aussi avec seulement 2 capteurs mais en 2 étapes). Et même on peut faire le truc avec un seul. Suffit qu'à chaque pas en avant, il se tourne à gauche voir s'il longe toujours le mur puis revienne à droite pour avancer d'un nouveau pas. C'est comme ça que j'ai programmé l'algorithme universel dont je parle ici avec un robot qui ne possède qu'un seul capteur.

    Citation Envoyé par DebutantProg Voir le message
    Je me suis mal fait comprendre alors, mon intention n'est pas de prendre le code l'utiliser pour gagner des points mais plutôt le comprendre entièrement
    Alors tu pourras étudier le corrigé du prof.

    Citation Envoyé par DebutantProg Voir le message
    j'ai même commencé le programme et je l'ai souligné
    Ah si tu l'as souligné alors ça change tout !
    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]

  5. #5
    Membre chevronné
    Avatar de emixam16
    Homme Profil pro
    Chercheur en sécurité
    Inscrit en
    Juin 2013
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur en sécurité

    Informations forums :
    Inscription : Juin 2013
    Messages : 333
    Points : 1 828
    Points
    1 828
    Par défaut
    Pour expliciter les remarques de Sve@r, sur ce forum on ne fera pas le travail à ta place, par contre si tu as des questions spécifiques sur un point précis on pourra te guider vers une solution.

    Sur le long terme c'est rentable pour toi car ça te force à comprendre par toi même la solution, tu pourras alors être plus autonome par la suite.

    Donc reviens nous voir avec un code. Dis nous ce que tu as tenté, ce qui ne marche pas et éventuellement quelles sont tes pistes pour résoudre ce problème. Nous nous ferons alors un plaisir de t'aider.

    Bon courage.

  6. #6
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 330
    Points : 4 151
    Points
    4 151
    Par défaut Labyrinthe
    Bonjour,

    Le principe de la main droite ou gauche est excellent. Cependant il suppose que le robot est placé à l'entrée du labyrinthe (pas de parachutage) ou qu'il n'y a pas d'ilôts (des portions de labyrinthe isolées de la clôture). Si la main directrice est sur le mur d'un ilôt, la balade durera une éternité. Et c'est long, surtout vers la fin

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Le principe de la main droite ou gauche est excellent.
    Je l'ai appliqué dans le jeu "Assassins Creed III". A certains passages du jeu, on se retrouve dans des souterrains et on doit allumer toutes les lampes situées sur les murs. J'ai donc parcouru tous les souterrains en longeant le mur gauche et en allumant chaque lampe située à ma gauche quand j'en croisais une. Quand je me retrouvais au point de départ je savais que toutes les lampes avaient été obligatoirement allumées.

    Citation Envoyé par Guesset Voir le message
    Cependant il suppose que le robot est placé à l'entrée du labyrinthe (pas de parachutage)
    Oui, c'était insinué quand j'ai commencé ma phrase par "alors à l'entrée du labyrinthe...". S'il est parachuté ça marchera aussi mais seulement à condition qu'il ne commence pas son cheminement sur un ilôt éventuel dont tu as aussi parlé.
    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]

Discussions similaires

  1. Dessin du chemin de navigation du robot dans une simulation
    Par nanou1710 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 25/11/2013, 13h43
  2. Robot dans un labyrinthe
    Par afaf06 dans le forum Scheme
    Réponses: 12
    Dernier message: 07/01/2008, 05h44
  3. simuler clic souris robot
    Par zarbouine dans le forum Langage
    Réponses: 2
    Dernier message: 01/02/2006, 07h49
  4. Simulation de style MDI dans une application SDI
    Par Djob dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/11/2005, 13h07
  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