diff options
author | ame <[email protected]> | 2024-07-17 01:09:18 -0500 |
---|---|---|
committer | ame <[email protected]> | 2024-07-17 01:09:18 -0500 |
commit | 67051d65f3094750f96023cba2c676afd60ded4e (patch) | |
tree | a7416b96977af9e2fe35ff8b974a19bc6ac0d564 /public/board.js | |
parent | a7e11ff8f729a669d8b2445f066606302ecb1b46 (diff) |
fix castling and cleanliness
Diffstat (limited to 'public/board.js')
-rw-r--r-- | public/board.js | 132 |
1 files changed, 61 insertions, 71 deletions
diff --git a/public/board.js b/public/board.js index 7fc8bec..4afaeb7 100644 --- a/public/board.js +++ b/public/board.js @@ -32,56 +32,71 @@ function handle_highlight(id) { } function handle_move(from_id, to_id) { - return function() { + function fun() { let table = { 1: 'K', 2: 'Q', 3: 'R', 4: 'B', 5: 'N', 6: 'p' } + let from_y = from_id.charCodeAt(0) - 48 + let from_x = from_id.charCodeAt(1) - 48 + + let to_y = to_id.charCodeAt(0) - 48 + let to_x = to_id.charCodeAt(1) - 48 + + let from = board[from_y][from_x] + let to = board[to_y][to_x] + + let from_color = board[from_y][from_x] > 0 + let to_color = board[to_y][to_x] > 0 + let castle = false let castle_rook_move = [] let prev_y_x = [] let new_y_x = [] - prev_y_x.push([from_id.charCodeAt(0) - 48, from_id.charCodeAt(1) - 48]) - new_y_x.push([to_id.charCodeAt(0) - 48, to_id.charCodeAt(1) - 48]) + prev_y_x.push([from_y, from_x]) + new_y_x.push([to_y, to_x]) - if (board[from_id.charCodeAt(0) - 48][from_id.charCodeAt(1) - 48] == 1 && to_id.charCodeAt(0) - 48 == 7 && to_id.charCodeAt(1) - 48 == 6) { - prev_y_x.push([7, 7]) - new_y_x.push([7, 5]) + if(Math.abs(from) == 1 && to == 0){ + console.log("valid") + if (castle_white_short && from_color && to_y == 7 && to_x == 6) { //white short + prev_y_x.push([7, 7]) + new_y_x.push([7, 5]) - castle_rook_move.push([7, 7]) - castle_rook_move.push([7, 5]) + castle_rook_move.push([7, 7]) + castle_rook_move.push([7, 5]) - castle = true - } + castle = true + } - else if (board[from_id.charCodeAt(0) - 48][from_id.charCodeAt(1) - 48] == 1 && to_id.charCodeAt(0) - 48 == 7 && to_id.charCodeAt(1) - 48 == 2) { - prev_y_x.push([7, 0]) - new_y_x.push([7, 3]) + else if (castle_white_long && from_color && to_y == 7 && to_x == 2) { //white long + prev_y_x.push([7, 0]) + new_y_x.push([7, 3]) - castle_rook_move.push([7, 0]) - castle_rook_move.push([7, 3]) + castle_rook_move.push([7, 0]) + castle_rook_move.push([7, 3]) - castle = true - } + castle = true + } - else if (board[from_id.charCodeAt(0) - 48][from_id.charCodeAt(1) - 48] == -1 && to_id.charCodeAt(0) - 48 == 0 && to_id.charCodeAt(1) - 48 == 6) { - prev_y_x.push([0, 7]) - new_y_x.push([0, 5]) + else if (castle_black_short && !from_color && to_y == 0 && to_x == 6) { //black short + prev_y_x.push([0, 7]) + new_y_x.push([0, 5]) - castle_rook_move.push([0, 7]) - castle_rook_move.push([0, 5]) + castle_rook_move.push([0, 7]) + castle_rook_move.push([0, 5]) - castle = true - } + castle = true + } - else if (board[from_id.charCodeAt(0) - 48][from_id.charCodeAt(1) - 48] == -1 && to_id.charCodeAt(0) - 48 == 0 && to_id.charCodeAt(1) - 48 == 2) { - prev_y_x.push([0, 0]) - new_y_x.push([0, 3]) + else if (castle_black_long && !from_color && to_y == 0 && to_x == 2) { //black long + prev_y_x.push([0, 0]) + new_y_x.push([0, 3]) - castle_rook_move.push([0, 0]) - castle_rook_move.push([0, 3]) + castle_rook_move.push([0, 0]) + castle_rook_move.push([0, 3]) - castle = true + castle = true + } } make_move(board, prev_y_x, new_y_x) @@ -98,54 +113,27 @@ function handle_move(from_id, to_id) { } if (castle) { - let color = castle && to_move - castle = false - - if (color) { + let from_element = document.getElementById(`${castle_rook_move[0][0]}${castle_rook_move[0][1]}`) + let to_element = document.getElementById(`${castle_rook_move[1][0]}${castle_rook_move[1][1]}`) - let from_element = document.getElementById(`${castle_rook_move[0][0]}${castle_rook_move[0][1]}`) - let to_element = document.getElementById(`${castle_rook_move[1][0]}${castle_rook_move[1][1]}`) - - while (from_element.firstChild) { - from_element.removeChild(from_element.firstChild) - } - - while (to_element.firstChild) { - to_element.removeChild(to_element.firstChild) - } - - let piece = document.createElement('p') - - piece.classList.add(board[castle_rook_move[1][0]][castle_rook_move[1][1]] > 0 ? 'w' : 'b', 'piece') - piece.append(table[Math.abs(board[castle_rook_move[1][0]][castle_rook_move[1][1]])]) - to_element.append(piece) - - } else { - - - let from_element = document.getElementById(`${castle_rook_move[0][0]}${castle_rook_move[0][1]}`) - let to_element = document.getElementById(`${castle_rook_move[1][0]}${castle_rook_move[1][1]}`) - - while (from_element.firstChild) { - from_element.removeChild(from_element.firstChild) - } - - while (to_element.firstChild) { - to_element.removeChild(to_element.firstChild) - } + while (from_element.firstChild) { + from_element.removeChild(from_element.firstChild) + } - let piece = document.createElement('p') + while (to_element.firstChild) { + to_element.removeChild(to_element.firstChild) + } - piece.classList.add(board[castle_rook_move[1][0]][castle_rook_move[1][1]] > 0 ? 'w' : 'b', 'piece') - piece.append(table[Math.abs(board[castle_rook_move[1][0]][castle_rook_move[1][1]])]) - to_element.append(piece) + let piece = document.createElement('p') - } + piece.classList.add(board[castle_rook_move[1][0]][castle_rook_move[1][1]] > 0 ? 'w' : 'b', 'piece') + piece.append(table[Math.abs(board[castle_rook_move[1][0]][castle_rook_move[1][1]])]) + to_element.append(piece) } let piece = document.createElement('p') - piece.classList.add(board[to_id.charCodeAt(0) - 48][to_id.charCodeAt(1) - 48] > 0 ? 'w' : 'b', 'piece') - piece.append(table[Math.abs(board[to_id.charCodeAt(0) - 48][to_id.charCodeAt(1) - 48])]) + piece.classList.add(board[to_y][to_x] > 0 ? 'w' : 'b', 'piece') + piece.append(table[Math.abs(board[to_y][to_x])]) to_element.append(piece) for (let i = 0; i < highlighted_squares.length; i++) { @@ -155,4 +143,6 @@ function handle_move(from_id, to_id) { to_move = !to_move } + + return fun; } |