JavaScript - Как выдержать сравнение если 2 индекса от множества?

Я пытаюсь узнать о JavaScript, и я пытаюсь создать основную игру сравнения, куда я помещаю номера карты во множество, я называю 2 из них беспорядочно, и я хочу выдержать сравнение, какое из 2 случайных требований имеет более высокую стоимость?Please help me. Мне удалось закодировать программу к картам соглашения 2 наугад, мне просто нужно руководство о том, как сравнить эти 2 оттянутые карты.

Спасибо.

{
// This is my attempt to create a basic game for a simplified version of ta siau
//where players choose a card, and compares it with dealer's card. Bigger card wins the round

var cards = [2,3,4,5,6,7,8,9,10,"jack","queen","king","ace"]; //available cards in the deck
confirm("start game now?");

var playerCard = cards[Math.floor(Math.random() * cards.length)]; //choose a random card for player

console.log(playerCard);

var dealerCard = cards[Math.floor(Math.random() * cards.length)]; //choose a random card for dealer

console.log(dealerCard);
}
0
добавлено отредактировано
Просмотры: 2
nl ja de
@F4r-20 - своего рода заказ... хм.. как насчет положения во множестве;)
добавлено автор Jamiec, источник
Кевин будет вы принимать один из этих ответов. Также NB вы didn' t определяют то, что происходит, когда карты - то же самое, так мог бы хотеть заменить игрока> дилер с игрок> = дилер , если игрок побеждает если it' s ничья
добавлено автор Popnoodles, источник

4 ответы

Попробуйте это:

if (cards.indexOf(playerCard) > cards.indexOf(dealerCard)) {
   alert("Player wins!");
}
else {
   alert("Dealer wins");
}
4
добавлено
Это требует линейного поиска каждого множества. They' ре не очень долго, в этом случае, но it' s больше работы, чем необходимый. Ценности индекса были явно вычислены, таким образом, вместо этого сами индексы могут быть сравнены.
добавлено автор Pointy, источник
indexof имеет больше смысла начиная с других людей haven' t замеченное "гнездо", "королева", "король", "туз" - not' t числа
добавлено автор Popnoodles, источник

В чем проблема?

var playerVal=Math.floor(Math.random() * cards.length);
var playerCard = cards[playerVal];

var dealerVal=Math.floor(Math.random() * cards.length);
var dealerCard = cards[dealerVal]; 

        if(playerVal>dealerVal){
        //player wins
    }

карты отдельные.

2
добавлено
если ("2"> "король") ?
добавлено автор George, источник
Что происходит, когда карта первоклассная, гнездо, королева? Этот won' t работа. Ценности множества должны будут быть subsituted.
добавлено автор Darren Davies, источник
Вы "редактируете" входные данные, вместо обеспеченных карт использовал его индексы.
добавлено автор Толя, источник
Жаль мое ложное. Я отредактировал к правильной версии
добавлено автор Norbert Pisz, источник
хороший редактируют. собирался предложить это.
добавлено автор tkone, источник

You should work on improving your accept rate, but the primary way you check values against other values is with if

if(playerCard === dealerCard){
    console.log('cards are the same');
} else {
    console.log('cards are different');
}

Отметьте === . На большинстве языков программирования вы проверяете условные предложения, используя == . В JavaScript можно сделать это, но странные вещи как [] == ложный оценят к истинному. === требует строгого соблюдения, таким образом [] === ложный , действительно, ложное.

0
добавлено

Необходимо управлять параметрами плат

var playerCardIndex = Math.floor(Math.random() * cards.length)
    var playerCard = cards[playerCardIndex];

    var dealerCardIndex = Math.floor(Math.random() * cards.length)
    var dealerCard = cards[dealerCardIndex]

    if (playerCardIndex > dealerCardIndex) {...}
0
добавлено