所以创建一个扑克游戏并且我有一个随机数生成器,现在只想在“C”,“S”,“H”和“D”之间生成一个随机字符串(显而易见的原因)。我看了一下SO,并没有找到我正在寻找的确切内容,我确实在C中找到了一个随机字符串生成器,但它不是所有的字母,你不能让它更具体。我会发布我尝试过的代码,但是我还没有为这将如何工作奠定基础。
答案 0 :(得分:2)
如果你想创建一个扑克游戏,首先要定义具有套装和数字的结构:
#include <string>
#include <vector>
struct Card
{
int number;
std::string suit;
};
//...
std::vector<Card> MyCards(52);
// write some code to initialize each card with their values
//...
现在,当你有了这个,那么这就是你洗牌的方式:
#include <algorithm>
//...
std::random_shuffle(MyCards.begin(), MyCards.end());
如果您不喜欢默认值,则有一个3参数版本的random_shuffle()可以使用自定义随机生成器。
http://www.cplusplus.com/reference/algorithm/random_shuffle/