C++ Array Shuffle

后端 未结 10 2028
温柔的废话
温柔的废话 2021-01-07 14:06

I\'m fairly new to C++ and don\'t quite understand function parameters with pointers and references. I have an array of Cards that I want to shuffle using the Fisher-Yates

10条回答
  •  半阙折子戏
    2021-01-07 14:38

    It looks that your problem does not come from the code posted, which looks fine at a first glance, but from the code around it.

    What about using a standard container of cards ? You must fill it, print it first to see if it's ok, shuffle, and then print it again.

    #include 
    std::vector deck; // Empty for now. Must be filled with cards.
    
    
    void shuffle (std::vector & deck)
    {
        int deckSize = 24;
        while (deckSize > 1) 
        {
           long int k = lrand48();
           k = k %24;
           deckSize--;
           Card temp = deck[deckSize];
           deck[deckSize] = deck[k];
           deck[k] = temp;
        }
    }
    

提交回复
热议问题