begin process at 2012 05 30 01:31:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

parcourir un labyrinthe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

parcourir un labyrinthe

samedi 25 novembre 2006 à 23:57:06 | parcourir un labyrinthe

emmy75fr

voila mon code et jarrive pas à le finir je veux cree une fonction pour parcourir le labyrinthe
si vous pouviez me repondre

#include<stdio.h>

#define VRAI 1

#define FAUX 0

 

void affiche (int T[20][20]);

void gauche (int i, int j);

void droite (int i, int j);

void monter (int i, int j);

void descendre (int i, int j);

 

 

           

int T[20][20]={

                        { 0, 0, 0, 0,-1,-1,-1, 0,-1,-1,-1,-1, 0, 0,-1,-1,-1,-1,-1,-1 },

                        {-1,-1,-1, 0,-1, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },

                        { 0,-1, 0, 0, 0, 0, 0, 0,-1, 0,-1,-1,-1, 0, 0,-1, 0,-1,-1, 0 },

                        { 0,-1, 0,-1,-1,-1, 0, 0,-1,-1,-1,-1,-1, 0, 0,-1, 0,-1, 0, 0 },

                        { 0, 0, 0, 0,-1,-1, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0,-1, 0, 0 },

                        {-1,-1, 0, 0,-1,-1, 0, 0,-1,-1, 0, 0,-1,-1,-1,-1,-1,-1, 0, 0 },

                        { 0,-1, 0,-1, 0, 0, 0,-1,-1, 0, 0, 0, 0, 0,-1,-1,-1,-1, 0, 0 },

                        { 0, 0, 0,-1, 0,-1,-1,-1, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1, 0, 0 },

                        {-1,-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1, 0,-1,-1,-1,-1,-1, 0, 0 },

                        { 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1,-1, 0, 0, 0, 0, 0 },

                        { 0,-1, 0,-1,-1,-1,-1, 0,-1,-1,-1, 0, 0,-1,-1,-1,-1,-1,-1, 0 },

                        { 0,-1, 0, 0, 0, 0, 0, 0,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0,-1, 0 },

                        {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0,-1,-1,-1, 0,-1, 0 },

                        {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0,-1, 0,-1, 0 },

                        {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1, 0, 0,-1,-1,-1,-1,-1, 0,-1, 0 },

                        {-1,-1, 0, 0,-1,-1, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0  },

                        { 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0 },

                        { 0,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0,-1,-1, 0, 0, 0, 0, 0, 0, 0 },

                        { 0,-1,-1,-1,-1,-1, 0,-1,-1,-1, 0,-1,-1, 0,-1,-1,-1,-1,-1,-1 },

                        { 0, 0, 0, 0, 0, 0, 0,-1,-1,-1, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1 },

                       

                        };

 

 

 

 

 

 

 

//fonction principale

int main () {

 

      int i,j;

            i=4, j=0;

            droite (i,j);

            gauche (i,j);

            Monter (i,j);

            Descendre (i,j);

           

            Affiche (T);

           

           

            }

void affiche(int T[20][20])

{

 

            int i,j;

           

            printf("Labyrinthe \n");

            for(i=0; i< 20;i++){

                        for(j=0; j< 20;j++){

                                  

                                   if (T[i][j] == 0)

                                   {

                                               printf(" ",T[i][j]);

                                              

                                   }

                                   else

                                   {

                                               if (T[i][j] == -1)

                                               {

                                                           printf("a",T[i][j]);

                                              

                                               }

                                               else

                                               {

                                                           printf("%d",T[i][j]);

                                               }

                                   }

                        }

                       

            printf("\n");

            }

           

            printf("\n");

           

           

            }

 

 

//fonction droite qui permet de parcourir le labyrinthe vers la droite           

void droite ( int i, int j)

                        {

                        for(j=0;j<20;j++)

                                   {

                                   if (T[i][j+1]== 0)

                                               {          

                                               T[i][j+1]=T[i][j] + 1;

                                               

                                   }

                                   else

                                   {

                                   if (T[i][j+1]==-1)

                                               {

                                               for(i=4;i<20;i++)

                                                           {          

                                                           if (T[i][j+1]== 0)

                                                                       {

                                                                       T[i+1][j]=T[i][j] + 1;

                                                                         }

                                                                       else return;

                                                                                 

                                                           }                      

                                                }

                                                else return;

                                                }

                                              

                                   }

                        }          

                       

//fonction gauche qui permet de parcourir le labyrinthe vers la gauche

void gauche ( int i, int j)

                        {

                        for(j=0;j<20;j++)

                        {

                        if (T[i][j-1]== 0)

                                   {           T[i][j-1]=T[i][j] + 1;

                                  

                                   }

                                   else return;

                       

                        }

                        }          

//fonction monter qui permet de parcourir le labyrinthe vers le haut

void monter ( int i, int j)

                        {

                        for(i=4;i>0;i--)

                        {

                        if (T[i-1][j]== 0)

                                   {           T[i-1][j]=T[i][j] + 1;

                                  

                                   }

                                   else return;

                       

                        }

                       

                        }

                                  

//fonction descendre qui permet de parcourir le labyrinthe vers la bas                  

void bas( int i, int j)

                        {

                        for(i=4;i<20;i++)

                        {

                        if (T[i+1][j]== 0)

                                   {           T[i+1][j]=T[i][j] + 1;

                                  

                                   }

                                   else return;

                        }

                       

                        }

                       


dimanche 26 novembre 2006 à 01:34:15 | Re : parcourir un labyrinthe

Ombitious_Developper

Salut:

Si tu veux par exemple laisser un robot explorer le labyrinthe jusqu'à trouver la sortie :
ajoute une variable pour gérer la direction du robot:

enum {
BAS,
HAUT,
GAUCHE,
DROITE};

puis essayer de faire un parcours circulaire.
dimanche 26 novembre 2006 à 16:01:03 | Re : parcourir un labyrinthe

yann_lo_san

La solution adoptée dans la littérature algorithmique est de créer une pile FIFO qui sauve le chemin emprunté par l'objet circulant dans le labyrinthe pour pouvoir se replier quant une impasse est trouvée.
Cela donne le moyen de chercher une sortie, mais pas le meilleur chemin !



Cette discussion est classée dans : int, void, parcourir, for, labyrinthe


Répondre à ce message

Sujets en rapport avec ce message

class matrice [ par ciaonataha ] J'ai ecrit le programme classe matrice...mais j'ai les error comme:"matrice.cpp:269: error: no match for 'operator=' in 'b = matrice::Mat_decomposer(a probleme d'allocation d'une matrice [ par emomar ] salut à tous voila j'ai un probleme avec la fonction remplir voila le code si quelqu'un peut m'aider merci code : [code=cpp]#include #include int n Jeu de la vie en C [ par nala14 ] Bonsoir je programme le jeu de la vie en C et je n'arrive pas à compiler mon programme pourriez vous m'aider svp merci #include #include #include classe abstraite et interface (au sens Java pas graphique :d ) en C++ [ par lulafitt ] Bonjour, Comme précisé dans le sujet quand je parle d'interface je ne parle pas d'interface graphique mais bien d'interface comme dans Java. Ceci dit Problème de définition de fonction dans une classe [ par labuche75 ] Bonjour à tous, je rencontre un problème à priori de définition de fonction dans la classe tableau permettant de manipuler de grands entiers nécessair affichage des occurence dans une chaine de caractère [ par fiorellafatma ] [^^pirate]salut à tous voila je dois faire un programme qui prend une chaine de caractère et retourne le nombre d' occurence de chaque caractère comm aider moi a compiler mon programme en devC++ [ par samissam ] bonjour, je demande d'aide sur les arbres binaire car je travaille dessus: j'ai fait un code en Dev C++ dont le but de lire et extraire les donnée probleme de selection dans opengl [ par oswa ] bonjour, svp j'ai besoin d'un aide urgent. en effet, j'ai realiser un programme en c++ qui utilise opengl. ce programme permet de dessiner plusieurs Allocation dynamique de tableu 2D [ par potitmarron ] Bonjour, J'aimerais savoir comment en C je peux créer un tableau et au fur et à mesure de mes besoins, ajouter des lignes ? Ici j'ai un tableau de x l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales