#include #define A 1 #define B 2 #define C 3 #define D 4 #define E 5 #define F 6 #define G 7 #define H 8 #define NL printf("\n") int sachovnice[9][9]; int kun[5][5]; int pozice[2]; vynuluj_kun() { int i,j; for(i=1;i<5;i++) for(j=1;j<5;j++) kun[i][j] = 0; return 0; } nastav_kun() { kun[0][1] = 1; kun[0][3] = 1; kun[1][0] = 1; kun[1][4] = 1; kun[3][4] = 1; kun[3][0] = 1; kun[4][1] = 1; kun[4][3] = 1; kun[2][2] = 2; return 0; } vytiskni_kun() { int i,j; for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%2d",kun[i][j]); } NL; } NL; NL; return 0; } vytiskni_sachovnici() { int i,j; printf(" "); for(i=0;i<8;i++) printf("%2c ",i+'A'); NL; printf(" +--+--+--+--+--+--+--+--+"); NL; for(i=A;i<=H;i++) { printf("%d |",i); for(j=A;j<=H;j++) { printf("%2d|",sachovnice[i][j]); } NL; printf(" +--+--+--+--+--+--+--+--+"); NL; } NL; NL; return 0; } vynuluj_sachovnici() { int i,j; for(i=A;i<=H;i++) for(j=A;j<=H;j++) sachovnice[i][j] = 0; return 0; } tahni_kun(int pozice[2],int tah) { int i,j; for(i=-2;i<=2;i++) { for(j=-2;j<=2;j++) if((pozice[1]+j <= H)&&(pozice[1]+j >= A)&&(pozice[0]+i >= A)&&(pozice[0]+i<=H)) { if(sachovnice[pozice[1]+j][pozice[0]+i]==0&&kun[j+2][i+2]==1) { sachovnice[pozice[1]+j][pozice[0]+i] = tah; } } } } int main() { int i,j; FILE *f; int pom=1,end=0; char buff; vynuluj_sachovnici(); vynuluj_kun(); nastav_kun(); f = fopen("pozice.txt","r"); pozice[0]=pozice[1]=0; while((buff=fgetc(f))!=EOF) { if(buff>='A'&&buff<='H') pozice[0]=buff-'A'+1; else if(buff>='a'&&buff<='h') pozice[0]=buff-'a'+1; if(buff>='0'&&buff<='8') pozice[1]=buff-'0'; } if(pozice[0]==0||pozice[1]==0) { printf("neplatne souradnice\nukoncuji.....\n"); return 1; } tahni_kun(pozice,pom); while(!end) { for(i=1;i<8;i++) for(j=1;j<8;j++) if(sachovnice[j][i]==pom) { pozice[0] = i; pozice[1] = j; tahni_kun(pozice,pom+1); } pom++; end=1; for(i=1;i<8;i++) for(j=1;j<8;j++) if(sachovnice[j][i]==0) end=0; } vytiskni_sachovnici(); return 0; }