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