資源簡介
一、問題描述
設計一個國際象棋的馬踏棋盤的演示程序。
基本要求:將馬隨機放在國際象棋8×8的棋盤Board[8][8]的某個方格中,馬按走棋規則進行移動。要求每個方格只進入一次,走遍棋盤全部的64個方格。編制非遞歸程序,求出馬的行走路線,并按求出的行走路線,將數字1,2,3, …,64一次填入一個8×8的方陣輸出之。
測試數據:可自行指定一個馬的初始位置(i,j),0≤i,j≤7。
二、實驗目的:
1、對數據結構基本理論和存儲結構及算法設計有更加深入的理解;
2、了解棧的特性,以便在實際問題背景下靈活運用他們;
3、提高在實際設計操作中系統分析、結構確定、算法選擇、數學建模和信息加工的能力。
代碼片段和文件信息
#include
#include“stack.h“
#include?
Point?g_round[8]?=?{000};
void?SetRound(Point?cur)//查找所在位置的所有可走位置的坐標,將其賦給g_round[8]
{
Point?round[]?=?
{
cur.x-2cur.y+10cur.x-1cur.y+20
cur.x+1cur.y+20cur.x+2cur.y+10
cur.x+2cur.y-10cur.x+1cur.y-20
cur.x-1cur.y-20cur.x-2cur.y-10
};
for(int?i=0;i<8;i++)
{
g_round[i].x?=?round[i].x;
g_round[i].y?=?round[i].y;
}
}
bool?GetRound(int?iPoint?&pt)//將所在位置周圍所有八個位置坐標賦予指針變量pt,并判斷其合理性
{
pt.x?=?g_round[i-1].x;
pt.y?=?g_round[i-1].y;
if(pt.x<0?||?pt.y<0?||?pt.x>7?||?pt.y>7)//判斷其合理性
return?false;
else?
return?true;
}
void?main()
{
int?s=1;
char?yn;
cout<<“===============馬踏棋盤的程序設計===============“< cout< while(s)
{
int?order[8][8]?=?{0};
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????952109??2009-07-19?12:02??數據結構課程設計報告書.pdf
?????文件???????3302??2009-07-02?21:07??馬踏棋盤源程序\HorseVisit.cpp
?????文件???????4448??2009-06-30?18:37??馬踏棋盤源程序\HorseVisit.dsp
?????文件????????545??2009-06-30?12:39??馬踏棋盤源程序\HorseVisit.dsw
?????文件??????66560??2009-07-02?22:47??馬踏棋盤源程序\HorseVisit.ncb
?????文件??????48640??2009-07-02?22:47??馬踏棋盤源程序\HorseVisit.opt
?????文件????????254??2009-07-02?22:47??馬踏棋盤源程序\HorseVisit.plg
?????文件???????1319??2009-07-01?22:06??馬踏棋盤源程序\Stack.cpp
?????文件????????559??2009-07-01?01:22??馬踏棋盤源程序\Stack.h
?????目錄??????????0??2009-07-19?12:07??馬踏棋盤源程序
-----------?---------??----------?-----??----
??????????????1077736????????????????????10
評論
共有 條評論