我用C ++制作基于文本的游戏。我希望用户能够从3个选项中选择,然后再选择3个选项等等。我将如何进行此操作。我希望制作一个随机生成事件的游戏,并且可以一次又一次地完成。抱歉模糊不清。
答案 0 :(得分:1)
可能是一个循环(while(endGame == false){...}
),您要求用户提供该选项(例如std::cin >> option
)?
如果您想生成随机数(根据它的值,您可以决定是否应该发生一些随机事件),请使用the rand()
function:
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
...
/* initialize random seed: */
srand (time(NULL));
/* generate secret number between 1 and 10: */
int secretNumber = rand() % 10 + 1;
if(secretNumber > 7){
... //some special event
}
反正。我强烈建议你先先获得一些关于c ++和编程的基本知识。检查一些分步教程或书籍。第一步通常是最难的;)
答案 1 :(得分:0)
如果您希望您的回复采用文本形式(我假设您这样做),那么它们的随机性可能会受到限制(以保持它们的连贯性)。
我会通过设置一个有限的响应列表来做,然后生成一个随机#来选择要使用的响应。
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
string generateRandomResponse() {
srand (time(NULL));
const int MAXSIZE = 1000; int i = rand() % 2 + 1;
string randomResponse[MAXSIZE];
randomResponse[0] = "This can be one response\n";
randomResponse[1] = "So can this\n";
randomResponse[2] = "So on and so forth\n";
return randomResponse[i];
}
int main() {
int userResponse = 0;
cout << "Hey you! What is your favorite number? ('1', '2', '3')" << endl;
cin >> userResponse;
cout << generateRandomResponse();
return 0;
}
答案 2 :(得分:0)
现代C ++解决方案。
#include <string>
#include <vector>
#include <random>
#include <iostream>
// List of choices we want to give the user.
std::vector< std::string > options = {
{"Option 1"},
{"Option 2"},
{"Option 3"},
{"Option 4"},
{"Option 5"} };
// Prepare random number generator /////////////////////////////////////////
// Seed with a real random value, if available
std::random_device r;
std::default_random_engine e1(r());
// A random value from 0 up to (and including) count of options - 1
std::uniform_int_distribution<int> uniform_dist(0, options.size()-1);
int nextRandomChoice()
{
return uniform_dist(e1);
}
int main()
{
std::string input;
do
{
const auto firstSelection = nextRandomChoice();
const auto secondSelection = nextRandomChoice();
const auto thirdSelection = nextRandomChoice();
std::cout << options[firstSelection] << '\n'
<< options[secondSelection] << '\n'
<< options[thirdSelection] << '\n';
std::cout << "Press Q to quit or ENTER for next selection:";
std::getline(std::cin, input);
} while ( input != "Q" );
return 0;
}