回溯演算法之馬踏棋盤

2021-06-28 04:53:10 字數 538 閱讀 4307

問題描述:

在8*8西洋棋棋盤上,讓馬從某一位置開始,走「日」子型踏遍棋盤每乙個格仔。

演算法思想:

採用回溯演算法,在每乙個點上按照一定順序探查下一步的走法,若走不動,則回溯到上一步,繼續探查

**:

#include#define  n   8

typedef struct

move ;

int chess[n][n];

int cnt = 1;

int count = 0;

move move[8] = , , , , , , , };//每個格仔對應的八個方向

void init()

cnt = 1;

}//初始化棋盤

void print()

printf("********************====\n");

}void horse(int x, int y) }}

int main(void)

} return 0;

}

回溯演算法之馬踏棋盤

首先我在這裡用了乙個10 10的 而不是8 8的 為什麼這樣用呢?我主要考慮到了邊界問題,馬一共有8中踏出方式,可是到了邊界時馬的踏出方式就變得很複雜要考慮踏出問題。所以我就用了10 10的 在出邊界時,只要判斷一下就可以了。這裡有乙個問題,我想說下,馬是否踏到第64步?如果馬踏到第64步時,輸出,...

回溯演算法(馬踏棋盤)

近期學習了回溯演算法於是自己寫了馬踏棋盤的遞迴以及非遞迴方式的 theme 馬踏棋盤 回溯演算法 coder 秒針的聲音 time 2015.1.11 include include include define m 8 typedef struct nodehorse horse horse1 i...

回溯演算法(馬踏棋盤)

近期學習了回溯演算法於是自己寫了馬踏棋盤的遞迴以及非遞迴方式的 theme 馬踏棋盤 回溯演算法 coder 秒針的聲音 time 2015.1.11 include include include define m 8 typedef struct nodehorse horse horse1 i...