All pastes #585667 Raw Edit

Mine

public cpp v1 · immutable
·published 2007-06-23 11:24 UTC
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;}