Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C by danitranquilo ( 15 years ago )
int buscaProfundidade() {
   //Primeiro teste: Critério de parada - se a última posição visitada é a Chegada, retorna 1
   if (vetorVisitados[topoVetor][0] == iChegada && vetorVisitados[topoVetor][1] == jChegada) {//testa se a posição do ultimo visitado he igual a chegada
      return 1;
   }

   //Se não for a posição de chegada, copia a última posição visitada para variáveis criadas. 
   //Estas variáveis serão manipuladas para que sirvam para a transição de estados 
   int iTransicao = vetorVisitados[topoVetor][0];
   int jTransicao = vetorVisitados[topoVetor][1];

   //Primeira transição
   //Mover pra direita
   if (jTransicao + 1 < COLUNAS && !labirinto[iTransicao][jTransicao + 1]) {//testa se tem tabuleiro e se não é parede       
      if (adicionaNoVetor(iTransicao, jTransicao + 1) == 1) {
         if (buscaProfundidade() == 1) {
            return 1;
         }
         removerDoVetor();
      }
   }

   //Segunda transição
   //Mover pra baixo
   if (iTransicao + 1 < LINHAS && !labirinto[iTransicao + 1][jTransicao]) {
      if (adicionaNoVetor(iTransicao + 1, jTransicao) == 1) {
         if (buscaProfundidade() == 1) {
            return 1;
         }
         removerDoVetor();
      }
   }

   //Terceira transição
   //Mover pra esquerda
   if (jTransicao - 1 >= 0 && !labirinto[iTransicao][jTransicao - 1]) {
      if (adicionaNoVetor(iTransicao, jTransicao - 1) == 1) {
         if (buscaProfundidade() == 1) {
            return 1;
         }
         removerDoVetor();
      }
   }

   //Quarta transição
   //Mover pra cima
   if (iTransicao - 1 >= 0 && !labirinto[iTransicao - 1][jTransicao]) {
      if (adicionaNoVetor(iTransicao - 1, jTransicao) == 1) {
         if (buscaProfundidade() == 1) {
            return 1;
         }
         removerDoVetor();
      }
   }

   //Se todas as tentativas não obtiveram sucesso, retorna 0.
   return 0;
}

 

Revise this Paste

Your Name: Code Language: