Javascript 21点中的showResult函数不工作
我的21点显示结果函数不能正常工作,尽管它传递了正确的参数来计算游戏的赢家。我将函数嵌套在deal按钮的函数中,以测试它是否工作 特定的computeWinner函数:Javascript 21点中的showResult函数不工作,javascript,blackjack,Javascript,Blackjack,我的21点显示结果函数不能正常工作,尽管它传递了正确的参数来计算游戏的赢家。我将函数嵌套在deal按钮的函数中,以测试它是否工作 特定的computeWinner函数: function computeWinner() { let winner; if (YOU['score'] <= 21) { if (YOU['score'] > DEALER['score'] || (DEALER)['score'] > 21) { console.log('You won'
function computeWinner() {
let winner;
if (YOU['score'] <= 21) {
if (YOU['score'] > DEALER['score'] || (DEALER)['score'] > 21) {
console.log('You won');
winner = YOU;
} else if (YOU['score'] < DEALER['score']) {
console.log('You lost');
winner = DEALER;
} else if (YOU['score'] === DEALER['score']) {
console.log('You drew');
}
} else if (YOU['score'] > 21 && DEALER['score'] <= 21) {
console.log('You lost');
winner = DEALER;
} else if (YOU['score'] > 21 && DEALER['score'] > 21) {
console.log('You drew');
}
console.log('Winner is', winner);
}
function showResult(winner) {
let message, messageColor;
if (winner === YOU) {
message = 'You won';
messageColor = 'green';
winSound.play();
} else if (winner === DEALER) {
message = 'You lost';
messageColor = 'red';
lossSound.play();
} else {
message = 'You drew';
messageColor = 'black';
}
document.querySelector('#blackjack-result').textContent = message;
document.querySelector('#blackjack-result').style.color = messageColor;
}
function blackjackDeal() {
showResult(computeWinner());
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';
}
我如何将其放置在“交易”按钮功能中:
function computeWinner() {
let winner;
if (YOU['score'] <= 21) {
if (YOU['score'] > DEALER['score'] || (DEALER)['score'] > 21) {
console.log('You won');
winner = YOU;
} else if (YOU['score'] < DEALER['score']) {
console.log('You lost');
winner = DEALER;
} else if (YOU['score'] === DEALER['score']) {
console.log('You drew');
}
} else if (YOU['score'] > 21 && DEALER['score'] <= 21) {
console.log('You lost');
winner = DEALER;
} else if (YOU['score'] > 21 && DEALER['score'] > 21) {
console.log('You drew');
}
console.log('Winner is', winner);
}
function showResult(winner) {
let message, messageColor;
if (winner === YOU) {
message = 'You won';
messageColor = 'green';
winSound.play();
} else if (winner === DEALER) {
message = 'You lost';
messageColor = 'red';
lossSound.play();
} else {
message = 'You drew';
messageColor = 'black';
}
document.querySelector('#blackjack-result').textContent = message;
document.querySelector('#blackjack-result').style.color = messageColor;
}
function blackjackDeal() {
showResult(computeWinner());
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';
}
只需在此处查看代码,但您似乎没有从
computeWinner()返回任何内容。我像这样添加了一个返回:returnwinner代码>。看看这是否是您的预期输出
//挑战5:21点
让blackjackGame={
'庄家':{'scoreSpan':'#庄家21点结果','div':'#庄家盒子','score':0},
'you':{'scoreSpan':'#你的21点成绩,'div':'#你的盒子,'score':0},
‘卡片’:[‘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]}
};
const YOU=blackjackGame['YOU']
const DEALER=blackjackGame['DEALER']
const hitSound=新音频('static/sounds/swish.m4a');
const winSound=新音频('static/sounds/cash.mp3');
const lossound=新音频('static/sounds/aww.mp3');
document.querySelector(“#21点点击按钮”).addEventListener('click',21点点击);
document.querySelector(“#21点支架按钮”).addEventListener('click',DealLogic);
document.querySelector(“#21点交易按钮”).addEventListener('click',blackjackDeal');
函数blackjackHit(){
让卡片=随机卡片();
展示卡(卡片,你);
更新存储(卡,你);
showScore(你);}
函数卡(){
让randomIndex=Math.floor(Math.random()*13);
返回blackjackGame['cards'][randomIndex];
}
功能展示卡(卡、activePlayer){
如果(activePlayer['score']21){
console.log(“您赢了”);
赢家=你;
}否则,如果(您['score']<经销商['score']){
log(“您丢失了”);
赢家=经销商;
}否则如果(您['score']==经销商['score']){
console.log('youdraw');
}
}如果(您['score']>21和经销商['score']21和经销商['score']>21){
console.log('youdraw');
}
返回赢家;
}
功能显示结果(优胜者){
console.log('Winner is',Winner);
让消息,消息颜色;
如果(获胜者==你){
消息='你赢了';
messageColor='绿色';
winSound.play();
}否则如果(赢家===经销商){
消息='你输了';
messageColor='红色';
lossSound.play();
}否则{
消息='你画';
messageColor='黑色';
}
document.querySelector(“#21点结果”).textContent=message;
document.querySelector(“#21点结果”).style.color=messageColor;
}
.flex-blackjack-row-1、.flex-blackjack-row-2
{
显示器:flex;
边框:1px纯黑;
填充:10px;
柔性包装:包装;
弯曲方向:行;
证明内容:周围的空间;
颜色:#ffffff;
背景:url('https://image.freepik.com/free-vector/poker-table-background-green-color_47243-1068.jpg“)中心;}
.flex-blackjack-row-3{
显示器:flex;
边框:1px纯黑;
填充:10px;
柔性包装:包装;
弯曲方向:行;
证明内容:周围的空间;
}
.flex-blackjack-row-1分区{
边框:1px纯黑;
填充:10px;
高度:350px;
文本对齐:居中;
弹性:1;
}
.flex-blackjack-row-1 img{
宽度:25%;
填充:10px;
}
.flex-blackjack-row-2按钮{
边框:1px纯黑;
填充:10px;
}
.flex-blackjack-row-2分区{
边框:1px纯黑;
填充:10px;
}
表,th,td{
填充物:5px;
边框:1px纯黑;
}
.flex-blackjack-row-2{
显示器:flex;
边框:1px纯黑;
填充:10px;
柔性包装:包装;
弯曲方向:行;
证明内容:周围的空间;
}
21点挑战赛
我们来玩吧
你:0
经销商:0
打
站
处理
获胜
损失
绘制
0
0
0
你是一个传奇人物。我希望你成为亿万富翁。非常感谢。