bueno les dejo el código para aceptar sugerencias:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define SIZE 8
#define Libre 0
void Mostrar(int[][8],int);
void Contenido(int*,int,int,int);
void Coordenadas(int,int);
void Raya(int,int,int,int,int);
int ultimo_movimiento_f0c1(int [][SIZE], int);
int cantidad_de_movimientos(int [][SIZE], int, int);
void informar(int [][SIZE]);
void sugerencia(int [][SIZE]);
int movimiento_vertical_horizontal[8][2] =
{
{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1},{2,1},{1,2}
};
/*----------------------------------------------------------------------------*/
main()
{
int mov = 1 ; int matriz[8][8] = {0}; int f; char c;
Mostrar(matriz,8);
printf("\n");
informar(matriz);
printf("\ningrese el movimiento numero %d:",mov);
scanf("%c",&c);
scanf("%d",&f);
getchar();
matriz[f-1][toupper(c)-65] = mov;
system("cls");
Mostrar(matriz,8);
mov++;
while(mov<=64)
{
if(mov<=64)
{
printf("\n");
printf("movimientos posibles:\t");
informar(matriz);
printf("\ningrese el movimiento numero %d:",mov);
scanf("%c",&c);
scanf("%d",&f);
getchar();
matriz[f-1][toupper(c)-65] = mov;
system("cls");
Mostrar(matriz,8);
mov++;
}
else
{
break;
}
}
printf("\ncaballo\n"
"satisfactoriamente ¡felicitaciones!");
getchar();
getchar();
return 0;
}
/*----------------------------------------------------------------------------*/
void sugerencia(int tablero[][SIZE])
{
int fila, columna; int k; int a,b,c; int temp = 7;
fila = ultimo_movimiento_f0c1(tablero,0);
columna = ultimo_movimiento_f0c1(tablero,1);
for(k=0;k<SIZE;k++)
{
a = fila + movimiento_vertical_horizontal[k][0];
b = columna + movimiento_vertical_horizontal[k][1];
if((a>=0)&&(a<=7)&&(b>=0)&&(b<=7)&&(tablero[a]==0))
{
c = cantidad_de_movimientos(tablero,a,b);
printf("%c%d(%d)\t",b+65,a+1,c);
}
}
}
/*----------------------------------------------------------------------------*/
void informar(int tablero[][SIZE])
{
int fila, columna; int k; int a,b,c;
fila = ultimo_movimiento_f0c1(tablero,0);
columna = ultimo_movimiento_f0c1(tablero,1);
for(k=0;k<SIZE;k++)
{
a = fila + movimiento_vertical_horizontal[k][0];
b = columna + movimiento_vertical_horizontal[k][1];
if((a>=0)&&(a<=7)&&(b>=0)&&(b<=7)&&(tablero[a]==0))
{
c = cantidad_de_movimientos(tablero,a,b);
printf("%c%d(%d)\t",b+65,a+1,c);
}
}
}
/*----------------------------------------------------------------------------*/
int cantidad_de_movimientos(int tablero[][SIZE], int fila, int columna)
{
int cantidad_de_retorno = 0; int V,H;
int k; int a,b,c;
for(k=0;k<SIZE;k++)
{
V = movimiento_vertical_horizontal[k][0];
H = movimiento_vertical_horizontal[k][1];
a = fila+V;
b = columna+H;
c = tablero[fila+V][columna+H];
if((a<=7)&&(b<=7)&&(a>=0)&&(b>=0)&&(c==0))
{
cantidad_de_retorno +=1;
}
}
return cantidad_de_retorno;
}
/*----------------------------------------------------------------------------*/
int ultimo_movimiento_f0c1(int tablero[][SIZE], int f_0_c_1)
{
int i, j; int mayor_valor = 0;
int fila_de_retorno, columna_de_retorno;
for(i = 0; i < SIZE; i++)
{
for(j = 0; j <SIZE; j++)
{
if(tablero[j]>mayor_valor)
{
mayor_valor = tablero[j];
fila_de_retorno = i;
columna_de_retorno = j;
}
}
}
if(f_0_c_1 == 0)
{
return fila_de_retorno;
}
if(f_0_c_1 == 1)
{
return columna_de_retorno;
}
}
/*----------------------------------------------------------------------------*/
void Mostrar(int T[][8],int n)
{
int i,j,w=3;
Coordenadas(n,w);
Raya(218,194,191,w,n);
for(i=0;i<n-1;i++)
{
Contenido(T,i+1,n,w);
Raya(195,197,180,w,n);
}
Contenido(T,i+1,n,w);
Raya(192,193,217,w,n);
}
/*----------------------------------------------------------------------------*/
void Contenido(int* F,int k,int n,int w)
{
int i;
printf("\n\t\t%7d %c",k,179);
for(i=0;i<n;i++)
if(F==Libre)
printf("%*c%c",w,' ',179);
else if(F<0)
printf("%*c %c",w-1,250,179);
else
printf("%*d%c",w,F,179);
}
/*----------------------------------------------------------------------------*/
void Raya(int i,int m,int f,int w,int n)
{
int h,k;
printf("\n\t\t\t%c",i); for(h=0;h<w;h++) printf("%c",196);
for(k=1;k<n;k++)
{printf("%c",m); for(h=0;h<w;h++) printf("%c",196);}
printf("%c",f);
}
/*----------------------------------------------------------------------------*/
void Coordenadas(int n,int w)
{
int i;
printf("\n\t\t\t"); for(i=0;i<n;i++) printf("%*c ",w,i+65);
}