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