Das Zurücksetzen der Sichtbarkeit von „startButtonGame' ist das einzige Problem; alles andere funktioniert einwandfrei
P粉614840363
P粉614840363 2023-09-19 22:02:31
0
1
740

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粉614840363
P粉614840363

Antworte allen(1)
P粉463840170

我已经在你的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);
    }
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage