⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24.cpp

📁 Knight s Tour Implementation
💻 CPP
字号:
//Knight tour 
//Arash nouri
//2005/12/08
#include "header24.h"
int main()
{
	cout << "Identify the begin point\nAnswer is (1,1) (2,3) (5,1) (6,0)\nrow: ";
	cin >> hCurrent;
	cout << "\ncolumn: ";
	cin >> vCurrent;
	
	board[hCurrent][vCurrent] = 1;
	system("CLS");
	
	for ( int counter = 2; counter < 65; counter++ )
	{
		cout <<"Move : " << counter - 1 << endl;
		move = isPossible (hCurrent, vCurrent);
		turn( move, hCurrent, vCurrent);
		printArray();
	}
	cout << "ey val" << (char)2 << endl;
	getch();
	return 0;
}
/*===========================================================*/
/*===========================================================*/
void printArray(void)
{
	system("cls");
	for ( int i = 0; i < rows; i++)
	{
		for ( int j = 0; j < rows; j++)
		{
			if(board[i][j] < 10 )
				cout << ' ';
			cout << board[i][j] << ' ';
		}
		cout << endl;
	}
	//	system("pause");
	
	return;
}
/*===========================================================*/
/*===========================================================*/
int isPossible(int hCurrent, int vCurrent)
{
	int movement, bestMove=-1, min = 10, nextrow, nextcol;
	
    for( movement = 7; movement >= 0; movement--)
	{
		
		nextrow = hCurrent + ver[movement];
		nextcol = vCurrent + hor[movement];
		
		if (nextrow < 0 || nextrow > 7 || nextcol < 0 || nextcol > 7 || board[nextrow][nextcol] != 0)
			continue;
		if (accessibility[nextrow][nextcol] < min)
		{
			min = accessibility[nextrow][nextcol];
			bestMove = movement;
		}			
	}
	return bestMove;
}
/*===========================================================*/
/*===========================================================*/
void turn ( int move, int& hCurrent, int& vCurrent )
{
	static count = 2;
	hCurrent += ver[move];
	vCurrent += hor[move];
	
	board[hCurrent][vCurrent] = count++;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -