Rumah  >  Soal Jawab  >  teks badan

Menetapkan semula keterlihatan "startButtonGame" adalah satu-satunya masalah;

Saya sedang membangunkan permainan blackjack. Setakat ini, semuanya berfungsi dengan baik kecuali butiran kecil ini. Pada asasnya, butang permulaan permainan hanya boleh dilihat sebelum permainan dan selepas permainan. Saya tidak mempunyai masalah untuk menetapkannya kepada tersembunyi, tetapi apabila saya menamatkan permainan ia tidak berfungsi.

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

Saya juga cuba menukar pesanan untuk melihat sama ada ia membuat sebarang perbezaan, tetapi semua yang berlaku ialah:

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

Semua dalam pernyataan if berlaku kecuali bahagian keterlihatan.

Jika anda memerlukan lebih banyak konteks, sila rujuk pautan kod: https://github.com/pedrosilva410/blackjack-game

P粉614840363P粉614840363396 hari yang lalu689

membalas semua(1)saya akan balas

  • P粉463840170

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

    Saya telah melihat keseluruhan kod pada Github anda dan masalahnya ialah fungsi startGame anda hanya dipanggil apabila permainan mula-mula bermula (yang masuk akal, jelas sekali). Ia tidak melakukan apa-apa semasa permainan sedang berlangsung.

    Arahan anda tentang membuat butang "Mulakan Permainan" kelihatan adalah betul, anda hanya meletakkannya di tempat yang salah. Tambahkannya pada fungsi drawCard anda juga.

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

    balas
    0
  • Batalbalas