The*_*uck 18
我会怎么做:
编辑:我不知道如何存储问题,所以.. :)
我假设问题存储在矢量或某些随机访问.现在我生成了10个不重复的随机数:7,4,12,17,1,13,9,2,3,10.
我会用这些作为问题向量的索引:
std::vector<std::string> questions;
//fill with questions
for(int i = 0; i < number_of_questions; i++)
{
send_question_and_get_answer(questions[i]);
}
Run Code Online (Sandbox Code Playgroud)
你试图以"错误的方式"解决问题.
试试这个(假设你有一个vector<int>问题ID,但同样的想法将适用于你拥有的任何东西):
听起来你基本上想要洗牌一副牌(在这种情况下,"卡片"是问题,或问题数字).
在C++中,我会这样做:
#include <vector>
#include <algorithms>
std::vector<int> question_numbers;
for (unsigned int i = 0; i < 10; ++i)
question_numbers.push_back(i+1);
std::random_shuffle(question_numbers.begin(), question_numbers.end());
// now dole out the questions based on the shuffled numbers
Run Code Online (Sandbox Code Playgroud)
你不必分发所有的问题,而不是每次玩游戏时都需要处理一整套卡片.当然,你可以,但没有这样的要求.