Problema Salto del Caballo.
C/Visual C
Actualizado el 14 de Octubre del 2023 por Adelino (24 códigos) (Publicado el 3 de Agosto del 2023)
4.915 visualizaciones desde el 3 de Agosto del 2023
Solucion al problema por el metodo de paso atras.
#include<stdio.h>
#include<conio.h>
int I[]={-25,-23,-14,-10,10,14,23,25};
int A[144],B[65],D[65],E[65];
int C[65][9],X[65],Y[65];
int a,b,c,d,e,f,x,y;
int main(){
textmode(C40);
for(y=12;y--;)
for(x=12;x--;a++)
if(y<10&&y>1&&x<10&&x>1)
X[b+1]=b%8*3+10,
Y[b+1]=b/8*2+4,
A[a]=++b;
while(a--)
if(b=A[a])
for(B[b]=1,x=8;x--;)
if(c=A[a+I[x]])
C[b][B[b]++]=c;
for(y=65;--y;)
for(x=B[y];--x>1;)
if(B[a=C[y][x]]>B[b=C[y][x-1]])
C[y][x-1]=a,
C[y][x++]=b,
x+=x<B[y];
a=0;
b=1;
Inicio:
E[++a]=c=b;
D[b]=B[b];
gotoxy(X[b],Y[b]);
printf("%i",a);
if(a>63&&b==18&&getch()==27) return(0);
Rutina:
while(D[b=C[c][--D[c]]]);
if(b) goto Inicio;
if(c=E[--a]) goto Rutina;
e=getch();
return(0);
}
No hay comentarios