rendered paste body#include<iostream>#include<iomanip>using namespace std;const int size = 8;void possible();void HEUR(int);const int ver[]={-1,-2,-2,-1,1,2,2,1},hor[]={2,1,-1,-2,-2,-1,1,2};int row,col,npos;int board[size][size],nextij[8][8][8],accessible[8][8];int main(){ int count = 1,k,j; cout <<"position [from (0,0) to (7,7)]:"; cin >> row >> col; cout << endl; board[row][col]=count; while(count!=size*size) { count++; possible(); HEUR(count); for(j=0;j<=7;j++) { for(k=0;k<=7;k++) cout << setw(3) << accessible[j][k]; cout <<"\t"; for(k=0;k<=7;k++) cout << setw(3) << board[j][k]; cout <<"\n\n"; } cout <<"\n\n"; } for(j=0;j<=size-1;j++) { for(k=0;k<=size-1;k++) cout << setw(3) << board[j][k]; cout <<"\n\n"; } system("pause"); return 0;}void possible(){ int npos; for(int r=0;r<=size-1;r++) { for(int c=0;c<=size-1;c++) { npos = 0; for(int i=0;i<=7;i++) { if(((r+ver[i] >=0) && (r+ver[i] <=size-1))&&((c+hor[i] >=0) && (c+hor[i] <=size-1))&&(board[r+ver[i]][c+hor[i]] == 0)) { nextij[r][c][npos] = i; npos++; } } accessible[r][c] = npos; } } }void HEUR(int K){ int min = accessible[row+ver[nextij[row][col][0]]][col+hor[nextij[row][col][0]]]; int r = row+ver[nextij[row][col][0]], c = col+hor[nextij[row][col][0]]; for(int i=1; i < accessible[row][col]; i++) if( min >= accessible[row+ver[nextij[row][col][i]]][col+hor[nextij[row][col][i]]] ) { min =accessible[row+ver[nextij[row][col][i]]][col+hor[nextij[row][col][i]]]; r = row + ver[nextij[row][col][i]]; c = col + hor[nextij[row][col][i]]; } cout <<"\n min ="<<min <<" ("<<r<<','<<c<<") \n"; board[r][c]=K; row = r; col = c;}