suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Das Zurücksetzen der Sichtbarkeit von „startButtonGame“ ist das einzige Problem; alles andere funktioniert einwandfrei

Ich entwickle ein Blackjack-Spiel. Bisher funktioniert bis auf dieses kleine Detail alles einwandfrei. Grundsätzlich sollte der Spielstart-Button nur vor und nach dem Spiel sichtbar sein. Ich habe kein Problem damit, es auf „Versteckt“ zu stellen, aber wenn ich ein Spiel beende, funktioniert es nicht.

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);
}

Ich habe sogar versucht, die Reihenfolge zu vertauschen, um zu sehen, ob es einen Unterschied macht, aber es passiert nur:

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 = "运气不好!你已经离开游戏了!";
    }

Alles in der if-Anweisung passiert, außer dem Sichtbarkeitsteil.

Wenn Sie mehr Kontext benötigen, lesen Sie bitte den Code-Link: https://github.com/pedrosilva410/blackjack-game

P粉614840363P粉614840363472 Tage vor754

Antworte allen(1)Ich werde antworten

  • P粉463840170

    P粉4638401702023-09-20 16:44:03

    我已经在你的Github上查看了整个代码,问题在于你的startGame函数只在游戏刚开始时调用(这是有道理的,显然)。在游戏进行中它什么也不做。

    你关于使“开始游戏”按钮可见的指示是正确的,只是把它们放错了位置。也把它们添加到你的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);
        }
    }
    

    Antwort
    0
  • StornierenAntwort