1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include "validMoveNum.h" #include "nextMove.h" static int dx[8] = {-2, -1, 1, 2, 2, 1, -1, -2}; static int dy[8] = {1, 2, 2, 1, -1, -2, -2, -1}; static inline int is_valid(int x, int y, int n, int vis[100][100]){ return x >= 0 && y >= 0 && x < n && y < n && vis[x][y] == 0; } int nextMove(int r, int c, int n, int vis[100][100]){ int min_idx = -1, min_p = 99; for(int i = 0; i < 8; i++){ int x = r + dx[i], y = c + dy[i]; if(!is_valid(x, y, n, vis)) continue; int cnt = validMoveNum(x, y, n, vis); if(cnt < min_p) min_idx = i, min_p = cnt; } return min_idx; }
|