La réinitialisation de la visibilité de « startButtonGame » est le seul problème ; tout le reste fonctionne bien ;
P粉614840363
P粉614840363 2023-09-19 22:02:31
0
1
743

Je développe un jeu de blackjack. Jusqu'à présent, tout fonctionne bien sauf ce petit détail. Fondamentalement, le bouton de démarrage du jeu ne doit être visible qu’avant et après le jeu. Je n'ai aucun problème à le mettre en masqué, mais lorsque je termine un jeu, cela ne fonctionne pas.

function startGame() {
    startGameButton.style.visibility = "hidden";
    if (!player.playerName) {
        player.playerName = prompt("你叫什么名字?")
        player.chips = 100

        playerEl.textContent = "玩家:" + player.playerName;
    }

    if (cards.length < 2) {
        let bet = prompt('你想下注多少(筹码:' + player.chips + ')')
        player.chips = player.chips - bet;
        chipsEl.textContent = "筹码:" + player.chips;
    }

    let firstCard = randomCard();
    let secondCard = randomCard();
    cards = [firstCard, secondCard];
    let tableFirstCard = randomCard();
    let tableSecondCard = randomCard();
    tableCards = [tableFirstCard, tableSecondCard];
    let message = "";
    let hasBlackJack = false;
    let isAlive = true;

    sum = firstCard + secondCard;
    newCardButton.style.visibility = "visible";
    startGameButton.textContent = "新游戏";

    if (sum < 21) {
        message = "你想要抽一张新牌吗?";
    } else if (sum === 21) {
        message = "你得到了21点!";
        newCardButton.style.visibility = "hidden";
        startGameButton.style.visibility = "visible";
        player.chips = player.chips + bet * 2
        hasBlackJack = true;
    } else {
        startGameButton.style.visibility = "visible";
        isAlive = false;
        message = "运气不好!你已经离开游戏了!";
    }

    messageEl.textContent = message;
    cardsEl.textContent = "牌:" + firstCard + " " + secondCard;
    tableCardsEl.textContent = "桌面牌:" + tableSecondCard + " " + tableSecondCard;
    sumEl.textContent = "总和:" + sum;
    console.log("21点:" + hasBlackJack);
    console.log("存活:" + isAlive);
}

J'ai même essayé d'échanger la commande pour voir si cela faisait une différence, mais tout ce qui se passe c'est :

if (sum < 21) {
        message = "你想要抽一张新牌吗?";
    } else if (sum === 21) {
        message = "你得到了21点!";
        newCardButton.style.visibility = "hidden";
        startGameButton.style.visibility = "visible";
        player.chips = player.chips + bet * 2
        hasBlackJack = true;
    } else {
        startGameButton.style.visibility = "visible";
        isAlive = false;
        message = "运气不好!你已经离开游戏了!";
    }

Tout ce qui se passe dans l'instruction if se produit, à l'exception de la partie visibilité.

Si vous avez besoin de plus de contexte, veuillez vous référer au lien du code : https://github.com/pedrosilva410/blackjack-game

P粉614840363
P粉614840363

répondre à tous(1)
P粉463840170

J'ai regardé l'intégralité du code sur votre Github et le problème est que votre fonction startGame n'est appelée qu'au premier démarrage du jeu (ce qui est logique, évidemment). Cela ne fait rien pendant que le jeu est en cours.

Vos instructions pour rendre visible le bouton « Démarrer le jeu » sont correctes, vous les avez simplement placées au mauvais endroit. Ajoutez-les également à votre fonction drawCard.

function drawCard() {

    if (hasBlackJack == false || isAlive == true) {
        let newCard = randomCard();
        let newTableCard = randomCard();
        sum = sum + newCard

        if (sum < 21) {
            message = "你想要抽一张新牌吗?";
        } else if (sum === 21) {
            message = "你得到了21点!";
            newCardButton.style.visibility = "hidden";
            startGameButton.style.visibility = "visible";
            hasBlackJack = true;
        } else {
            isAlive = false;
            message = "运气不好!你已经出局了!";
            startGameButton.style.visibility = "visible";
            newCardButton.style.visibility = "hidden"
        }

        messageEl.textContent = message;
        cardsEl.textContent = cardsEl.textContent + " " + newCard;
        tableCardsEl.textContent = tableCardsEl.textContent + " " + newTableCard;
        sumEl.textContent = "总和: " + sum;
        console.log("黑杰克: " + hasBlackJack);
        console.log("还活着: " + isAlive);
    }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal