繁体   English   中英

我怎么能洗牌,然后从这个数组中随机显示一张卡片?

[英]How could I shuffle and then display a random card from this array?

class Card {
   constructor(suit, value) {  
    this.suit = suit;  
    this.value = value;
    }
}

测试它是否让我制作卡片

let card = new Card('Spades', 8);
console.log(card);

// 制作一副 52 张牌

class Deck {
    constructor () {
        this.deck =  [];  
    }
    createDeck (suits, values) {
        for(let suit of suits) {
            for(let value of values){
                this.deck.push(new Card (suit, value));
            }
        }
        return this.deck;


    }
}
const suits = ['Hearts', 'Diamonds', 'Clubs', 'Spades'];
const values = [2,3,4,5,6,7,8,9,10, 'Jack', 'Queen', 'King', 'Ace']
let deck = new Deck();
deck.createDeck(suits, values);
// console.log(deck);

我可以创建甲板我只是不知道如何从中挑选随机项目。 任何帮助,将不胜感激。

由于创建的deck 实例附加到deck 变量,您可以通过执行deck.deck访问它。

所以你可以做这样的事情:

deck.deck[Math.floor(Math.random() * 52)]

你也可以使用 Math.round 函数,这取决于你想要的精确度

你也可以创建一个函数,然后你传递你的牌组并取回一张牌。 例如:

function pickCard(deck) {
  return deck[Math.round(Math.random() * 52))];
}

你也可以把它作为一种方法来实现

    class Deck{
     // ...your code
     get pickCard() {
      return this.deck[Math.round(Math.random() * 52)];
     }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM