问题描述
我编写了一个睡眠功能,这样当机器人正在播放时,它可以在几秒钟内而不是一次间隔移动它的动作。当我单击“站立”并且机器人正在播放时,我无法单击命中按钮,但我可以单击“交易”按钮,这意味着一切都会重置,但我不希望交易按钮在机器人播放时起作用-它应该像点击按钮一样被禁用。
有谁知道发生了什么以及为什么我的交易按钮在机器人播放时仍然有效?非常感谢。
我的睡眠功能:
(pyvenv.d) jdoe$ pip --version # pip version for this answer (or newer).
pip 21.1.1
(pyvenv.d) jdoe$ pip cache --help # Review all options available to you.
(pyvenv.d) jdoe$ pip cache dir # Cache-directory for pip(1).
/home/jdoe/.cache/pip
(pyvenv.d) jdoe$ pip cache purge # Purge cache-directory (by example).
Files removed: 621 # If cache-directory is already empty,the
# output will be: "ERROR: No matching packages".
异步经销商逻辑函数:
function sleep(ms) {
return new Promise( resolve => setTimeout(resolve,ms));
}
二十一点发牌按钮功能:
async function dealerLogic() {
blackjackGame['isstand'] = true;
while (DEALER['score'] < 16 && blackjackGame ['isstand'] === true) {
let card = randomCard();
showCard(card,DEALER);
updatescore(card,DEALER);
showscore(DEALER);
await sleep(1000);
}
if (DEALER['score'] > 15) {
blackjackGame['turnsOver'] = true;
let winner = computeWinner();
showResult(winner);
console.log(['turnsOver']);
}
}
整个javascript:
function blackjackDeal() {
if (blackjackGame['turnsOver'] === true) {
blackjackGame['isstand'] = false;
let yourImages = document.querySelector('#your-Box').querySelectorAll('img');
let dealerImages = document.querySelector('#dealer-Box').querySelectorAll('img');
for (i=0; i < yourImages.length; i++) {
yourImages[i].remove();
}
for (i=0; i < dealerImages.length; i++) {
dealerImages[i].remove();}
YOU['score'] = 0;
DEALER['score'] = 0;
document.querySelector('#your-blackjack-result').textContent = 0;
document.querySelector('#your-blackjack-result').style.color = 'white';
document.querySelector('#dealer-blackjack-result').textContent = 0;
document.querySelector('#dealer-blackjack-result').style.color = 'white';
document.querySelector('#blackjack-result').textContent = "Let's play";
document.querySelector('#blackjack-result').style.color = 'black';
blackjackGame['turnsOver'] = true;
}
}
HTML:
//Challenge 5: Blackjack
let blackjackGame = {
'dealer': {'scoreSpan': '#dealer-blackjack-result','div': '#dealer-Box','score': 0},'you': {'scoreSpan': '#your-blackjack-result','div': '#your-Box','cards': ['2','3','4','5','6','7','8','9','10','K','J','Q','A'],'cardsMap': {'2': 2,'3': 3,'4': 4,'5': 5,'6': 6,'7': 7,'8': 8,'9': 9,'10': 10,'K': 10,'J': 10,'Q': 10,'A': [1,11]},'wins': 0,'losses': 0,'draws': 0,'isstand': false,'turnsOver': true,};
const YOU = blackjackGame['you']
const DEALER = blackjackGame['dealer']
const hitSound = new Audio('static/sounds/swish.m4a');
const winSound = new Audio('static/sounds/cash.mp3');
const lossSound = new Audio('static/sounds/aww.mp3');
document.querySelector('#blackjack-hit-button').addEventListener('click',blackjackHit);
document.querySelector('#blackjack-stand-button').addEventListener('click',dealerLogic);
document.querySelector('#blackjack-deal-button').addEventListener('click',blackjackDeal);
function blackjackHit() {
if (blackjackGame['isstand'] === false) {
let card = randomCard();
showCard(card,YOU);
updatescore(card,YOU);
showscore(YOU);} }
function randomCard() {
let randomIndex = Math.floor(Math.random() * 13);
return blackjackGame['cards'][randomIndex];
}
function showCard(card,activePlayer) {
if (activePlayer['score'] <= 21) {
let cardImage = document.createElement('img');
cardImage.src = `static/images/${card}.png`;
document.querySelector(activePlayer['div']).appendChild(cardImage);
hitSound.play(); }
}
function blackjackDeal() {
if (blackjackGame['turnsOver'] === true) {
blackjackGame['isstand'] = false;
let yourImages = document.querySelector('#your-Box').querySelectorAll('img');
let dealerImages = document.querySelector('#dealer-Box').querySelectorAll('img');
for (i=0; i < yourImages.length; i++) {
yourImages[i].remove();
}
for (i=0; i < dealerImages.length; i++) {
dealerImages[i].remove();}
YOU['score'] = 0;
DEALER['score'] = 0;
document.querySelector('#your-blackjack-result').textContent = 0;
document.querySelector('#your-blackjack-result').style.color = 'white';
document.querySelector('#dealer-blackjack-result').textContent = 0;
document.querySelector('#dealer-blackjack-result').style.color = 'white';
document.querySelector('#blackjack-result').textContent = "Let's play";
document.querySelector('#blackjack-result').style.color = 'black';
blackjackGame['turnsOver'] = true;
}
}
function updatescore(card,activePlayer) {
if (card === 'A') {
if (activePlayer['score'] + blackjackGame['cardsMap'][card][1] <= 21) {
activePlayer['score'] += blackjackGame['cardsMap'][card][1];
} else {
activePlayer['score'] += blackjackGame['cardsMap'][card][0];}
} else {
activePlayer['score'] += blackjackGame['cardsMap'][card];
}
}
function showscore(activePlayer) {
if (activePlayer['score'] > 21) {
document.querySelector(activePlayer['scoreSpan']).textContent = 'BUST!';
document.querySelector(activePlayer['scoreSpan']).style.color = 'red';
}
else {
document.querySelector(activePlayer['scoreSpan']).textContent = activePlayer['score'];
}
}
function sleep(ms) {
return new Promise( resolve => setTimeout(resolve,ms));
}
async function dealerLogic() {
blackjackGame['isstand'] = true;
while (DEALER['score'] < 16 && blackjackGame ['isstand'] === true) {
let card = randomCard();
showCard(card,DEALER);
showscore(DEALER);
await sleep(1000);
}
if (DEALER['score'] > 15) {
blackjackGame['turnsOver'] = true;
let winner = computeWinner();
showResult(winner);
console.log(['turnsOver']);
}
}
function computeWinner() {
let winner;
if (YOU['score'] <= 21) {
if (YOU['score'] > DEALER['score'] || (DEALER)['score'] > 21) {
blackjackGame['wins']++;
winner = YOU;
} else if (YOU['score'] < DEALER['score']) {
blackjackGame['losses']++;
winner = DEALER;
} else if (YOU['score'] === DEALER['score']) {
blackjackGame['draws']++;
}
} else if (YOU['score'] > 21 && DEALER['score'] <= 21) {
blackjackGame['losses']++;
winner = DEALER;
} else if (YOU['score'] > 21 && DEALER['score'] > 21) {
blackjackGame['draws']++;
}
console.log(blackjackGame);
return winner;
}
function showResult(winner) {
let message,messageColor;
if (blackjackGame['turnsOver'] === true) {
if (winner === YOU) {
document.querySelector('#wins').textContent = blackjackGame['wins'];
message = 'You won';
messageColor = 'green';
winSound.play();
} else if (winner === DEALER) {
document.querySelector('#losses').textContent = blackjackGame['losses'];
message = 'You lost';
messageColor = 'red';
lossSound.play();
} else {
document.querySelector('#draws').textContent = blackjackGame['draws'];
message = 'You drew';
messageColor = 'black';
}
document.querySelector('#blackjack-result').textContent = message;
document.querySelector('#blackjack-result').style.color = messageColor;
}
}
CSS:
<div class="container-5">
<h2>Blackjack Challenge</h2>
<h3><span id="blackjack-result">Let's Play</span></h3>
<div class="flex-blackjack-row-1">
<div id="your-Box">
<h2>You: <span id="your-blackjack-result">0</span></h2>
</div>
<div id="dealer-Box">
<h2>Dealer: <span id="dealer-blackjack-result">0</span></h2>
</div>
</div>
<div class="flex-blackjack-row-2">
<button class="btn-lg btn-primary mr-2" id="blackjack-hit-button">Hit</button>
<button class="btn-lg btn-warning mr-2" id="blackjack-stand-button">Stand</button>
<button class="btn-lg btn-danger mr-2" id="blackjack-deal-button">Deal</button>
</div>
<div class="flex-blackjack-row-3">
<table>
<tr>
<th>Wins</th>
<th>Losses</th>
<th>Draws</th>
</tr>
<tr>
<td><span id="wins">0</span></td>
<td><span id="losses">0</span></td>
<td><span id="draws">0</span></td>
</tr>
</table>
</div>
</div>
<script src ="static/script.js">
</script>
</body>
</html>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)