馬踏棋盤演算法

2021-07-29 21:22:42 字數 582 閱讀 4049

將馬隨機放在西洋棋的board[0~7][0~7]的某個方格中,馬按走棋規則進行移動。,走遍棋盤上全部64個方格。編制非遞迴程式,求出馬的行走路線,並按求出的行走路線,將數字1,2,…,64依次填入乙個8×8的方陣,輸出之。

利用回溯法的思想,馬的走法總共有8,c[8]=,b[8]=,c是橫座標,b是縱座標。總共有64步,利用這麼多的條件就可以得出是否可走的條件。另外關鍵的一點是遞迴結束後,把a[i][j]歸零,因為這一步是以後其他走法的必經一步,所以要歸零。而在八皇后問題中,不存在走回來的,它預設的有個順序,即陣列下標順序,而馬走日是有可能走回來的。
#include

int m=8,n=8,a[8][8];

int c[8]=,b[8]=,num=0,sum=0;

int check(int i,int j)

void magosun(int i,int j) }}

else

}int main()

} magosun(0,0); //從0,0座標開始

printf("%d",sum);

}

馬踏棋盤演算法

為.c檔案 include include include define rows 8 define cols 8 int cheesboard rows cols const int movex 8 const int movey 8 初始化棋盤,將棋盤所有的位置賦值為0 void initboa...

馬踏棋盤演算法

在乙個8 8象棋棋盤中,定義馬的起始位置,如何讓馬踏遍整個棋盤 使用遞迴求解,從起始位置開始,往其四周可去的點行走,走到之後,再以到達點為起始點再向四周可去點走,直到走完 include includeusing namespace std define wei 8 定義棋盤維度 typedef s...

用java寫的馬踏棋盤演算法

將馬隨機放在西洋棋的8 8棋盤board 0 7 0 7 的某個方格中,馬按走棋規則進行移動。要求每個方格只進入一次,走遍棋盤上全部64個方格。馬踏棋盤問題 思路 用深度優先遍歷 回溯法 1,初始化乙個8 8的矩陣,元素都為1 2,設定馬的起始位置 x,y 對走過的節點做標記 3,對起始位置的下個一...