0

カードの古典的なデッキ/ポーカー ゲームの問題。カードごとにクラスがあります (CardClubs、CardDiamond など)。ランク (デュース = 2 など) の列挙型があります。私の CardSet クラスには、コンストラクターがあります。

    public SuperCard[] cardArray;
    public Random myRandom = new Random();
    #region Constructor
    public CardSet() 
    {
        cardArray = new SuperCard[52];
        for (int i = 0; i < 13; i++)
        {
            cardArray[i] = new CardClubs((Rank)i + 1);
            cardArray[i + 13] = new CardDiamond((Rank)i+1);
            cardArray[i + 26] = new CardHeart((Rank)i + 1); ;
            cardArray[i + 39] = new CardSpades((Rank)i + 1); ;
        }
    }
    #endregion

そして、取得するカードの数を渡す GetCards メソッドがあります。パブリック ランダム アップを作成しました。GetCards は、次のように Program.cs で呼び出されます。

int howManyCards = 5; // can be whatever. used this instead of # for debug purposes
SuperCard[] computerHand = myDeck.GetCards(howManyCards); // create two hands, user/comp
SuperCard[] myHand = myDeck.GetCards(howManyCards);

ランダムを使用してランダム カードを生成する方法がわかりません。これは、CardSet クラスからの現在の GetCard メソッド (動作していません) です。今のところ、同じカードを生成しても問題ありません。ランダム選択の基本を理解したいだけです。

    public SuperCard[] GetCards(int number)
    { 
        SuperCard[] hand = new SuperCard[number];
        for (int i = 0; i < number; i++)
        {
            hand[i] = cardArray[myRandom]((Rank)i + 1);
        }
        return hand;
    }
4

1 に答える 1