【发布时间】:2013-04-07 22:32:21
【问题描述】:
这是我正在使用的。我有一个包含卡片信息的 Card 类,我有一个设置 52 张卡片组的卡片组,我有一个设置卡片向量的 Shoe 类。问题是洗牌。 std::random_shuffle 效果很好,但我无法完成我想要的。
我可以洗牌,也可以洗牌的向量,但它仍然会将这些牌堆叠在一起。我正在寻找一种将牌组洗牌的方法。任何帮助将不胜感激。 ;)。
【问题讨论】:
-
组合向量,然后将它们洗牌。 stackoverflow.com/questions/3177241/…
-
好吧,我试试看;)
-
给
Shoe类提供卡片向量和AddDeck()方法可能更容易。该方法当然将 52 张卡片添加到卡片向量中。看来Deck类并没有增加多少价值,你只是在一个地方为了一个目的使用它。 -
基本数据表示错误。鞋子不是甲板的集合。鞋子是卡片的集合,就像一副牌一样,它只是更大。您需要对两者使用相同的结构,除了鞋子必须允许重复。此外,如果您正在制作严肃的工业级游戏模拟,标准库随机数生成器很少足够。例如,我的公共领域 OneJoker 库使用 JKISS 算法加上 Fisher-Yates 洗牌。 160 行 C 代码,可用here。
-
谢谢 MSalters 和 Lee Crocker,这就是我所做的。甲板类通过使用添加甲板的方法来组装鞋子。它完美地工作;)