diff options
author | IgrisBRC <[email protected]> | 2024-07-13 11:38:32 +0530 |
---|---|---|
committer | IgrisBRC <[email protected]> | 2024-07-13 11:38:32 +0530 |
commit | 5edc39fcc24d95a7c52e69da49b3853c6d969f4a (patch) | |
tree | 6d18901d28e7fd36206c33cc72e6fb4d13862ebe /app.js | |
parent | 6355b9725ac4e18f8001ff7c9be73e8f78fd1d31 (diff) |
refactored the project
Diffstat (limited to 'app.js')
-rw-r--r-- | app.js | 366 |
1 files changed, 0 insertions, 366 deletions
@@ -1,366 +0,0 @@ -let board = [ - [0, 0, 0, 0, 0, 0, 0, 0], - [-6, -6, -6, -6, -6, -6, -6, -6], - [0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0], - [0, 0, 0, 0, 0, 0, 0, 0], - [6, 6, 6, 6, 6, 6, 6, 6], - [0, 0, 0, 0, 0, 0, 0, 0], -] - - -console.log(move(board, 1, 0)) -//move(board, 3, 3) - -function move(board, y, x) { - let piece = Math.abs(board[y][x]) - switch (piece) { - case 0: - return [] - case 1: - return king_move(board, y, x) - case 2: - return amelia_move(board, y, x) - case 3: - return rook_move(board, y, x) - case 4: - return bishop_move(board, y, x) - case 5: - return knight_move(board, y, x) - case 6: - return pawn_move(board, y, x) - } -} - -function pawn_move(board, y, x) { - let moves = [] - let color = board[y][x] > 0 - - if (color) { - if (y == 6) { - if (board[y - 1][x] == 0) { - moves.push([y - 1, x]) - } - if (board[y - 2][x] == 0) { - moves.push([y - 2, x]) - } - } else if (color && y != 0) { - if (board[y - 1][x] == 0) { - moves.push([y - 1, x]) - } - } - - return moves - } else { - if (y == 1) { - if (board[y + 1][x] == 0) { - moves.push([y + 1, x]) - } - if (board[y + 2][x] == 0) { - moves.push([y + 2, x]) - } - } else if (color && y != 7) { - if (board[y + 1][x] == 0) { - moves.push([y + 1, x]) - } - } - return moves - } -} - -function king_move(board, y, x) { - let color = board[y][x] > 0 - let moves = [] - - for (let i = y - 1; i <= y + 1; i += 1) { - for (let j = x - 1; j <= x + 1; j += 1) { - if ((i == y && j == x) || i < 0 || j < 0 || i >= board.length || j >= board[i].length) { - continue - } - if (board[i][j] == 0 || (color ^ board[i][j] > 0)) { - moves.push([i, j]) - } - } - } - - return moves -} - -function knight_move(board, y, x) { - let color = board[y][x] > 0 - let moves = [] - - let cand = [ - [y + 2, x + 1], - [y + 2, x - 1], - [y + 1, x - 2], - [y + 1, x + 2], - [y - 2, x + 1], - [y - 2, x - 1], - [y - 1, x + 2], - [y - 1, x - 2], - ] - - for (let k = 0; k < cand.length; k++) { - if (cand[k][0] < 0 || cand[k][1] < 0 || cand[k][0] >= board.length || cand[k][1] >= board[cand[k][0]].length) { - continue - } - - if (board[cand[k][0]][cand[k][1]] == 0 || (color ^ board[cand[k][0]][cand[k][1]] > 0)) { - moves.push([cand[k][0], cand[k][1]]) - } - } - - return moves -} - - -function rook_move(board, y, x) { - let color = board[y][x] > 0 - let moves = [] - - for (let i = x + 1; i < board[1].length; i++) { - if (board[y][i] != 0) { - if (color ^ board[y][i] > 0) { - console.log(color ^ board[y][i]) - moves.push([y, i]) - break - } - break - } - moves.push([y, i]) - } - - for (let i = x - 1; i >= 0; i--) { - if (board[y][i] != 0) { - if (color ^ board[y][i] > 0) { - moves.push([y, i]) - break - } - break - } - moves.push([y, i]) - } - - - for (let i = y + 1; i < board.length; i++) { - if (board[i][x] != 0) { - if (color ^ board[i][x] > 0) { - moves.push([i, x]) - break - } - break - } - moves.push([i, x]) - } - - for (let i = y - 1; i >= 0; i--) { - if (board[i][x] != 0) { - if (color ^ board[i][x] > 0) { - moves.push([i, x]) - break - } - break - } - moves.push([i, x]) - } - - return moves -} - -function bishop_move(board, y, x) { - let color = board[y][x] > 0 - let moves = [] - - let i = y + 1 - let j = x + 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i += 1 - j += 1 - } - - i = y - 1 - j = x - 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i -= 1 - j -= 1 - } - - i = y - 1 - j = x + 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i -= 1 - j += 1 - } - - i = y + 1 - j = x - 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i += 1 - j -= 1 - } - - return moves -} - -function amelia_move(board, y, x) { - let color = board[y][x] > 0 - let moves = [] - - for (let i = x + 1; i < board[1].length; i++) { - if (board[y][i] != 0) { - if (color ^ board[y][i] > 0) { - console.log(color ^ board[y][i]) - moves.push([y, i]) - break - } - break - } - moves.push([y, i]) - } - - for (let i = x - 1; i >= 0; i--) { - if (board[y][i] != 0) { - if (color ^ board[y][i] > 0) { - moves.push([y, i]) - break - } - break - } - moves.push([y, i]) - } - - - for (let i = y + 1; i < board.length; i++) { - if (board[i][x] != 0) { - if (color ^ board[i][x] > 0) { - moves.push([i, x]) - break - } - break - } - moves.push([i, x]) - } - - for (let i = y - 1; i >= 0; i--) { - if (board[i][x] != 0) { - if (color ^ board[i][x] > 0) { - moves.push([i, x]) - break - } - break - } - moves.push([i, x]) - } - let i = y + 1 - let j = x + 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i += 1 - j += 1 - } - - i = y - 1 - j = x - 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i -= 1 - j -= 1 - } - - i = y - 1 - j = x + 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i -= 1 - j += 1 - } - - i = y + 1 - j = x - 1 - - while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) { - if (board[i][j] != 0) { - if (color ^ board[i][j] > 0) { - moves.push([i, j]) - break - } - break - } - - moves.push([i, j]) - i += 1 - j -= 1 - } - return moves -} - -export { move } |