Rumah > Soal Jawab > teks badan
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粉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); } }