1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include <iostream>
#include <string>
#include <random>
// int random_rank;
// int random_suit;
void generate_random_card(int&, int&);
// std::string card_number[] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
// std::string card_suit[] = { " Spade", " Heart", " Club", " Diamond" };
int main()
{
int random_rank { };
int random_suit { };
// lambdas to display the card in text representation:
auto rank = [] (int r) { return "AKQJT98765432"[r % 13]; };
auto suit = [] (int s) { return "SHDC"[s % 4]; };
std::cout << rank(random_rank) << suit(random_suit) << "\n\n";
generate_random_card(random_rank, random_suit);
std::cout << rank(random_rank) << suit(random_suit) << '\n';
generate_random_card(random_rank, random_suit);
std::cout << rank(random_rank) << suit(random_suit) << '\n';
}
void generate_random_card(int& c_rank, int& c_suit)
{
static std::default_random_engine rng(std::random_device{}());
// random_number = rand() % 13;
static std::uniform_int_distribution<int> rank(0, 12);
c_rank = rank(rng);
// random_suit = rand() % 4;
static std::uniform_int_distribution<> suit(0, 3);
c_suit = suit(rng);
}
|