JavaScript Номер не будет отображаться - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь сделать какую-нибудь игру в Блэкджек в JavaScript, но у меня есть проблема с отображением счета текущего игрока.

    let blackjackGame = {
    'you': {'scoreSpan': "#your-blackjack-result", 'div': '#your-box', 'score': 0},
    'dealer': {'scoreSpan': "#dealer-blackjack-result", 'div': '#dealer-box', 'score': 0},
    'cards': ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'],
    'cardsMap': {'2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'J': 10, 'Q': 10, 'K': 10, 'A': [1, 11]}
};

    function updateScore(card, activePlayer) {
    activePlayer['score'] += blackjackGame['cardsMap']['card'];
}

function showScore(activePlayer) {
    document.querySelector(activePlayer['scoreSpan']).textContent = activePlayer['score'];
}

HTML

<div  class="flex-box-blackjack-board">
                <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>

Когда я нажимаю кнопку, чтобы ударить по карте, отображается счет NAN, но если я изменяю эту строку:

    function updateScore(card, activePlayer) {
    activePlayer['score'] += blackjackGame['cardsMap']['card'];
}

по этому:

    function updateScore(card, activePlayer) {
    activePlayer['score'] += blackjackGame['cardsMap']['k'];
}

Отображение счета 10 и увеличение по норме, почему я не могу выбрать карту случайным образом, и счет показывает хороший результат вместо NaN? Я не вижу никакой ошибки.

Спасибо за вашу помощь

1 Ответ

3 голосов
/ 19 марта 2020

Кажется, в вашей функции есть ошибка:

function updateScore(card, activePlayer) {
    activePlayer['score'] += blackjackGame['cardsMap']['card'];
    // above blackjackGame['cardsMap']['card'] returns undefined,
    // that's why you get NaN when you do a sum with number
}

разве вы не имели в виду что-то подобное ниже?

function updateScore(card, activePlayer) {
    activePlayer['score'] += blackjackGame['cardsMap'][card];
    // in this form we refer to the card argument passed to function
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...