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