輸入包含多組測試資料。每組輸入由兩個方格組成,每個方格包含乙個小寫字母(a~h),表示棋盤的列號,和乙個整數(1~8),表示棋盤的行號。
對於每組輸入,輸出一行「to get from xx to yy takes n knight moves.」。
e2 e4
a1 b2
b2 c3
a1 h8
a1 h7
h8 a1
b1 c3
f6 f6
to get from e2 to e4 takes 2 knight moves.
to get from a1 to b2 takes 4 knight moves.
to get from b2 to c3 takes 2 knight moves.
to get from a1 to h8 takes 6 knight moves.
to get from a1 to h7 takes 5 knight moves.
to get from h8 to a1 takes 6 knight moves.
to get from b1 to c3 takes 1 knight moves.
to get from f6 to f6 takes 0 knight moves.
題意概括:西洋棋中,給出馬的起始位置和欲到達位置,求出到達最短的步數。
解題思路:這是一道簡單的廣搜問題,根據起始的位置,可以知道下一步可以走的八個位置,進行搜尋,中間判斷,不能走到原來的位置,還有就是不能跳到棋盤的外面去了,然後一步步搜尋,直到找到最終位置就可以了。
程式源**:
#include#includeint x,y,x1,y1;
int b[10][10];
int c[8][2]=;
int min=9999;
void fun(int x0,int y0,int step)
int x2,y2;
if(step>min)
return ;
for(int i=0;i<8;i++) }
return ;
}int main()
return 0;
}
西洋棋皇后問題
1 八皇后問題 2 求解思路 3 實現 include include object.h include linklist.h using namespace std using namespace mylib template class queuesolution public object s...
西洋棋馬走日(華科軟院上機)
問題描述 假設西洋棋棋盤有5 5共25個格仔。設計乙個程式,使棋子從初始位置 棋盤編號為1的位置 開始跳馬,能夠把棋盤的格仔全部都走一遍,每個格仔只允許走一次。要求 1 輸出乙個解 用二維陣列來記錄馬跳的過程,即 步號,棋盤格編號 左上角為第一步起點 2 求總共有多少解 注 西洋棋的棋子是在格仔中間...
hdu1372 dfs搜尋之西洋棋的馬
乙個8x8的西洋棋棋盤,你有乙個棋子 馬 算出棋子 馬 從某一格到另一格仔的最少步數。與普通dfs不同的是,你能走的路線不是上下左右,四個方向。而是由 日 字組成的8個方向。雖然是西洋棋的馬,但是其實和中國象棋的馬走法還是一樣的。include include includeusing namesp...