#include <stdio.h>
#include <stdlib.h>
/*---FUNCIÓN-confima-letra------------------------------------------------*/
/*Evita que el camino se salga del tablero*/
int confirmaletra (int i, int j, char letra){
int a=1; //tipo lógico inicializada en VERDADERO (1)
if(i==0 && letra=='A'){ //comprueba que no haya A en la fila 1
a=0;
}else{
if(j==0 && letra=='I'){ //que no haya I en la columna 1
a=0;
}else{
if(j==4 && letra=='D'){ //que no haya D en la columna 4
a=0;
}
}
}
return (a);
}
/*-------------------------------------------------------------------------*/
/*-------------FUNCIÓN-comprueba-letra-------------------------------------*/
int compruebaletra (char letra){
int a=1;
if(letra!='A' || letra!='B' || letra!='D' || letra!='I'){
a=0;
}
return (a);
}
/*------------------------------------------------------------------------*/
/*Algoritmo--> LABERINTO*/
int main (void){
char tablero[5][5];
int columna;
int fila=0;
char letra;
int i, j; //i--> contador fila; j--> contador columna
printf("Rellene la matriz laberinto; introduzca letras A, B, D o In"); for(i=0; i<5; i++){
for(j=0; j<5; j++){
printf("letra[%i][%i]: ", i
, j
); while(!compruebaletra(letra)){
printf("La letra NO es correcta, introduzca A, B, D o In"); }
while(!confirmaletra(i,j,letra)){
printf("La letra %c no puede ir en esa posicionn", letra
); printf("Introduzca otra letra de las validas: "); }
tablero[i][j]=letra;
}
}
/*muestra el tablero*/
for(i=0; i<5; i++){
for(j=0; j<5; j++){
}
}
/*se declara la columna de entrada y se comienza el laberinto*/
printf("Indique el numero de la columna inicial (de 1 a 5): "); while(columna<1 || columna>5){
printf("columna no valida. Introduzca numero del 1 al 5n"); }
do{
switch(tablero[fila][columna-1]){
case 'I':
columna=columna+1;
break;
case 'D':
columna=columna-1;
break;
case 'A':
fila=fila-1;
break;
case 'B':
fila=fila+1;
break;
}
}while(!(fila==4));
printf("Usted ha salido por la columna %in", columna
); }