資源簡介
在中國象棋棋盤上,任意一個位置放置一個棋子馬,要能選擇一套合適的移動路線,按象棋中“馬走日”的移動規(guī)則不重復(fù)地遍歷棋盤上每一個位置點(diǎn)。 本程序在VS2013調(diào)試通過,并可以完成指定功能。 先用C++的控制臺,顯示坐標(biāo)表示的路徑。 之后用easyX來畫一個棋盤,動畫化表示馬的遍歷過程。 要想用源代碼,需下載插件easyX,<graphics.h>頭文件才可用。 如果不想要下載easyx,則可以刪除圖形表示的部分代碼。
代碼片段和文件信息
/*?文件頭
*?象棋中馬的遍歷.cpp
*?Data?Structure.............坐標(biāo)結(jié)構(gòu)體
*?Compiler?version...........Microsoft?Visual?Studio?2013?Release
*?Name.......................
*?Date.......................2015/3/17
*?Computer?&?CPU.............lenovo?E530?&?Intel?cure?i3-2348M?CPU
*?Email......................1071717521@qq.com
*?Function:圖的深度優(yōu)先遍歷演示
*----------------------------------------------------
*/
/*象棋中馬的遍歷*/
//頭文件?
#include
#include
#include
#include//畫圖所用
//宏定義?
#define?LENGTH?10??
#define?WIDTH?9???????//棋盤的長、寬?
#define?NUMBER?(LENGTH*WIDTH)
//坐標(biāo)結(jié)構(gòu)體
typedef?struct?weizhi?//標(biāo)志棋子的位置,坐標(biāo)表示?
{
int?x;
int?y;
}Position;
//棋盤訪問標(biāo)志數(shù)組
int?visited[LENGTH][WIDTH];
//馬可以移動的點(diǎn)數(shù)組
int???fx[]?=?{?2?1?-1?-2?-2?-1?1?2?};
int???fy[]?=?{?1?2?2?1?-1?-2?-2?-1?};
//子函數(shù)聲明
bool?judge(int?i?int?j);//檢查用戶輸入是否合法,以及檢查跳馬的過程中是否越界?
void?init_visit();//初始化visited數(shù)組
void?findpath(Position?path[]);//尋找一條遍歷棋盤的路徑
int?next(int?i?int?j
- 上一篇:DICOM Viewer
- 下一篇:移動機(jī)器人FastSLAM算法
評論
共有 條評論