vendredi 26 février 2021

How to double jump in checkers JAVASCRIPT

So I just finished coding my first big program(Im a beginner so for me this is big :/) and I'm having a hard time figuring out the logic for double jumping. I have my checker game set up right now to to do single jumps & then it switches the turn. Any advice on how to implement a double jump feature would be appreciated. https://andrewdimes.github.io/Checkers/ << this is the link to the game.

    let index = parseInt(e.target.id);
    let row = parseInt(e.target.className);
    let desiredSpace = board[row][index];
    console.log(desiredSpace)
    if (!desiredSpace) {
        //red normal move
        if (turn === 'red' && row === pieceSelected[1] + 1 && index === pieceSelected[2] - 1 || turn === 'red' && row === pieceSelected[1] + 1 && index === pieceSelected[2] + 1) {
            board[row][index] = pieceSelected[0];
            board[pieceSelected[1]][pieceSelected[2]] = null;
            playerTurn();
            //black normal move
        } else if (turn === 'black' && row === pieceSelected[1] - 1 && index === pieceSelected[2] - 1 || turn === 'black' && row === pieceSelected[1] - 1 && index === pieceSelected[2] + 1) {
            board[row][index] = pieceSelected[0];
            board[pieceSelected[1]][pieceSelected[2]] = null;
            playerTurn();
            //red jump black
        } else if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'blackking') {
            board[row][index] = pieceSelected[0];
            board[pieceSelected[1]][pieceSelected[2]] = null;
            if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'blackking') {
                board[row - 1][index + 1] = null;
                redPoints++;
            }
            if(board[row-1][index+1] === 'black' || board[row-1][index+1] === 'blackking'){
                turn = 'red'
            }
    
                playerTurn()
            
            
        } else if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'blackking') {
            board[row][index] = pieceSelected[0];
            board[pieceSelected[1]][pieceSelected[2]] = null;
            if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'blackking') {
                board[row - 1][index - 1] = null;
                redPoints++;
            }
            playerTurn()
            //black jump red
        } else if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'redking') {
            board[row][index] = pieceSelected[0];
            board[pieceSelected[1]][pieceSelected[2]] = null;
            if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'redking') {
                board[row + 1][index - 1] = null;
                blackPoints++;
            }
            playerTurn()
        } else if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'redking') {
            board[row][index] = pieceSelected[0];
            board[pieceSelected[1]][pieceSelected[2]] = null;
            if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'redking') {
                board[row + 1][index + 1] = null;
                blackPoints++;
            }
            playerTurn()
        } else if (pieceSelected[0] === 'blackking') {
            if (turn === 'black' && row === pieceSelected[1] + 1 && index === pieceSelected[2] - 1 || turn === 'black' && row === pieceSelected[1] + 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();
            } else if (turn === 'black' && row === pieceSelected[1] - 1 && index === pieceSelected[2] - 1 || turn === 'black' && row === pieceSelected[1] - 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();

            } else if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'redking') {
                    board[row - 1][index + 1] = null;
                    blackPoints++;
                }
                playerTurn()
            } else if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'redking') {
                    board[row - 1][index - 1] = null;
                    blackPoints++;
                }
                playerTurn()
            } else if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'redking') {
                    board[row + 1][index - 1] = null;
                    blackPoints++;
                }
                playerTurn()

            } else if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'redking') {
                    board[row + 1][index + 1] = null;
                    blackPoints++;
                }
                playerTurn()
            }

        } else if (pieceSelected[0] === 'redking') {
            if (turn === 'red' && row === pieceSelected[1] + 1 && index === pieceSelected[2] - 1 || turn === 'red' && row === pieceSelected[1] + 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();
            } else if (turn === 'red' && row === pieceSelected[1] - 1 && index === pieceSelected[2] - 1 || turn === 'red' && row === pieceSelected[1] - 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();

            } else if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'black'|| turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'blackking') {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'black'|| turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'blackking') {
                    board[row - 1][index + 1] = null;
                    redPoints++;
                }
                playerTurn()
            } else if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'blackking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'blackking') {
                    board[row - 1][index - 1] = null;
                    redPoints++;
                }
                playerTurn()
            } else if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'blackking') {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'blackking') {
                    board[row + 1][index - 1] = null;
                    redPoints++;
                }
                playerTurn()

            } else if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'blackking') {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'blackking') {
                    board[row + 1][index + 1] = null;
                    redPoints++;
                }
                playerTurn()
            }
        } else if (turn === 'red' && pieceSelected[3] === true) {
            if (turn === 'red' && row === pieceSelected[1] + 1 && index === pieceSelected[2] - 1 || turn === 'red' && row === pieceSelected[1] + 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();
            } else if (turn === 'red' && row === pieceSelected[1] - 1 && index === pieceSelected[2] - 1 || turn === 'red' && row === pieceSelected[1] - 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();

            } else if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'blackking') {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'blackking') {
                    board[row - 1][index + 1] = null;
                    redPoints++;
                }
                playerTurn()
            } else if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'blackking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'blackking') {
                    board[row - 1][index - 1] = null;
                    redPoints++;
                }
                playerTurn()
            } else if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'blackking') {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'blackking') {
                    board[row + 1][index - 1] = null;
                    redPoints++;
                }
                playerTurn()

            } else if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'black'|| turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'blackking') {
                board[row][index] = 'redking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'black' || turn === 'red' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'blackking') {
                    board[row + 1][index + 1] = null;
                    redPoints++;
                }
                playerTurn()
            }
        } else if (turn === 'black' && pieceSelected[3] === true) {
            if (turn === 'black' && row === pieceSelected[1] + 1 && index === pieceSelected[2] - 1 || turn === 'black' && row === pieceSelected[1] + 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();
            } else if (turn === 'black' && row === pieceSelected[1] - 1 && index === pieceSelected[2] - 1 || turn === 'black' && row === pieceSelected[1] - 1 && index === pieceSelected[2] + 1) {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                playerTurn();

            } else if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] - 2 && board[row - 1][index + 1] === 'redking') {
                    board[row - 1][index + 1] = null;
                    blackPoints++;
                }
                playerTurn()
            } else if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'red' || turn === 'black' && row === pieceSelected[1] + 2 && index === pieceSelected[2] + 2 && board[row - 1][index - 1] === 'redking') {
                    board[row - 1][index - 1] = null;
                    blackPoints++;
                }
                playerTurn()
            } else if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'red' || urn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'red' || urn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] + 2 && board[row + 1][index - 1] === 'redking') {
                    board[row + 1][index - 1] = null;
                    blackPoints++;
                }
                playerTurn()

            } else if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'red' || turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'redking') {
                board[row][index] = 'blackking'
                board[pieceSelected[1]][pieceSelected[2]] = null;
                if (turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'red'|| turn === 'black' && row === pieceSelected[1] - 2 && index === pieceSelected[2] - 2 && board[row + 1][index + 1] === 'redking') {
                    board[row + 1][index + 1] = null;
                    blackPoints++;
                }
                playerTurn()

            }
        }


    }
    render();
};```

Aucun commentaire:

Enregistrer un commentaire