[ create a new paste ] login | about

Link: http://codepad.org/0QlSHIAd    [ raw code | output | fork ]

C++, pasted on Mar 6:
#include <iostream>
#include <algorithm>
#include <stdlib.h>

void Dump (int *deck, int deckSize);
void FisherYatesShuffle (int *deck, int deckSize);

int main()
    {
    /* For this example, it doesn't matter how the rng is seeded. */
    srand (1);

    int deck[52] = {0,};
    for (int x = 0; x < 52; x++)
        {
        deck[x] = x;
        }
    FisherYatesShuffle (deck, 52);
    Dump (deck, 52);
    return 0;
    }

void Dump (int *deck, int deckSize)
    {
    const char *suit[] = {"clubs", "hearts", "spades", "diamonds"};
    const char *face[] = {"ace", "deuce", "three", "four", "five", "six", "seven",
        "eight", "nine", "ten", "jack", "queen", "king"};
    for (int x = 0; x < deckSize; x++)
        {
        std::cout << face[deck[x]%13] << " of " << suit[deck[x]%4] << std::endl;
        }
    }

void FisherYatesShuffle (int *deck, int deckSize)
    {
    for (int i = deckSize - 1; i > 0; i--)
        {
        std::swap (deck[i], deck[rand()%(i + 1)]);
        }
    }


Output:
nine of diamonds
six of clubs
eight of diamonds
six of spades
seven of clubs
eight of spades
four of diamonds
three of clubs
ten of diamonds
seven of hearts
king of diamonds
ace of hearts
queen of diamonds
ten of hearts
three of diamonds
five of spades
four of clubs
ten of clubs
eight of hearts
five of diamonds
ace of clubs
nine of hearts
king of spades
seven of diamonds
jack of diamonds
four of hearts
nine of clubs
jack of clubs
eight of clubs
six of diamonds
nine of spades
queen of spades
ten of spades
deuce of clubs
queen of hearts
four of spades
three of hearts
deuce of hearts
five of clubs
jack of spades
seven of spades
three of spades
queen of clubs
king of hearts
king of clubs
deuce of spades
ace of spades
five of hearts
six of hearts
deuce of diamonds
jack of hearts
ace of diamonds


Create a new paste based on this one


Comments: