騎士旅行問題

2021-09-06 14:15:11 字數 1094 閱讀 9235

西洋棋的騎士遍歷棋盤的所有格,利用試探性訪問求得結果。小弟愚笨,整了接近一上午才搞定,過程中實在太多基礎錯誤了,不過總算最後成功,得到能夠走完的所有格的初始點及路線。附加程式如下

// new24.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include

#include

#include

using namespace std;

int nextstep(int[8],int&, int& ,int);

int* paixu(int,int,int);

void print(int[8]);

int _tmain(int argc, _tchar* argv)

;board[currentrow][currentcolumn]=1;

int i;

for( i=1;i<64;i++)

}return 0;

}int nextstep(int m[8],int& a,int& b,int i)

, mm=0, shuzi[8]=;

int horizontal[8]=;

int vertical[8]=;

int judge[8][8]=,,,

,,,,};

for(int j=0;j<8;j++)

if(m[a][b]!=0)

jieguo[mm]=judge[a][b];

shuzi[mm]=j;

mm++;

a-=vertical[j];

b-=horizontal[j];

}if(mm==0) return 0;

//int * haha;

paixu( shuzi,jieguo,mm);

a+=vertical[shuzi[0]];

b+=horizontal[shuzi[0]];

m[a][b]=i+1;

return 1;

}int* paixu(int n1[8],int n[8],int mm)}}

return n;

void print(int c[8])

騎士旅行問題(騎士走棋盤)

問題描述 乙個騎士在棋盤中,給予其乙個初始位置,求其是否能夠走完整個棋盤。騎士的走法和中國象棋的馬走法相同,在前進過程中,騎士在其落足過的地方不能再次落足。如下 騎士走棋盤問題,騎士的走法與象棋中馬的走法相同,要求騎士便利棋盤中所有的點,但不能重複走乙個點兩次 本題採用優先選擇 回溯到方法進行,每次...

騎士旅行 BFS

description 在乙個n m 格仔的棋盤上,有乙隻西洋棋的騎士在棋盤的左下角 1 1 如圖1 騎士只能根據象棋的規則進行移動,要麼橫向跳動一格縱向跳動兩格,要麼縱向跳動一格橫向跳動兩格。例如,n 4,m 3 時,若騎士在格仔 2 1 如圖2 則騎士只能移入下面格仔 1 3 3 3 或 4 2...

騎士旅行 bfs

題目描述 description 在乙個n m 格仔的棋盤上,有乙隻西洋棋的騎士在棋盤的左下角 1 1 如圖1 騎士只能根據象棋的規則進行移動,要麼橫向跳動一格縱向跳動兩格,要麼縱向跳動一格橫向跳動兩格。例如,n 4,m 3 時,若騎士在格仔 2 1 如圖2 則騎士只能移入下面格仔 1 3 3 3 ...