c++ - 使用 srnd 获取相同的值
问题描述
我试图创造一个纸牌游戏,我遇到了这个问题:
例如:我抽了3张牌开始游戏,每次我玩,游戏都会给出红桃2和方块4,那么第三张牌是不同的(例如方块7)。如果我选择再获得一张牌,游戏会保留 2 张红心,4 张方片,然后将方格 7 与另一张牌交换,而不是保留它。每次我再画一个时,它都会交换最后一回合画的最后一个。
输出:第一次迭代
卡板。获得 3 张初始卡
红心 2 钻石 4 钻石 7
选择你想做什么:
1.-抽一张牌
2.-选择一对
1
第二次迭代
画一张卡片
红桃 2 方块 4 黑桃 9 方块 2
选择你想做什么:
1.-抽一张牌
2.-选择一对
1
第三次迭代
画一张卡片
红桃2 方块4 黑桃9 方块7 黑桃2
选择你想做什么:
1.-抽一张牌
2.-选择一对
等等。
事先谢谢你。
Card* Deck::pickCard() {
Deck b;
srand(time(NULL));
int randCard = rand() % getMany()+1;
Card* c;
c = deck[randCard];
for(int i=randCard+1;i<posFullDeck;i++){
deck[i-1] = deck[i];
}
posFullDeck--;
return c;
}
void TaulaJoc::pickCard() {
if (getManyTable() < 20) {
Baralla b;
Carta *c = b.pickCard();
//Eliminar del munt
table[posFullTable] = c;
posFullTable++;
//DELETE
delete c;
} else if (getManyTable() == 20) {
cout<<"You cannot draw more cards!"<<endl;
}
}
解决方案
Srand(time(0))
这应该在 main 开始时调用一次,以在每次程序运行时更改变量。然后像往常一样使用 rand 函数,你的代码中没有包含它。
推荐阅读
- reactjs - 有没有一种方法可以使用 React Material UI 创建如下图所示的组件
- docker - 运行一个简单的 docker 容器不会显示在“docker ps”中
- javascript - ReactJS:表单值不带值
- database - 如何将表单数据发布到 aspx url 并将其保存到 codeigniter 中的数据库
- date - 用户在 matplotlib 的数据定位器中定义时间步长
- django - django认证登录页面修改
- flutter - FittedBox 内的 ListView 不可滚动
- c++ - C++ 中的析构函数输出
- insight.database - 出现错误“Insight.Database.FastExpando”不包含“Set1”的定义
- gstreamer - Gstreamer multiudpsink 在所有子网上广播