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);

मैं डेक बना सकता हूं, मुझे नहीं पता कि यादृच्छिक वस्तुओं को कैसे चुनना है। किसी भी सहायता की सराहना की जाएगी।

0
tha33 7 पद 2019, 18:03

1 उत्तर

चूंकि बनाया गया डेक इंस्टेंस डेक वेरिएबल से जुड़ा हुआ है, आप इसे 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)];
     }
    }

0
voiys 7 पद 2019, 18:18