-2

大家好,我正在尝试让数组与向量一起使用,因此每次运行我的程序时,我的代码都不会出现字母“单词”。我想我需要对向量做一些事情,但我已经阅读了一些指南,但是如果有人可以帮助我完成那些很棒的步骤,我会很困惑?:)

编辑:基本上我试图让我的向量使用函数 playGame(); 这样我就可以显示不同的单词,而不是每次都出现同一个单词,即“单词”

这是我当前的代码:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int playGame(string word); 
string array[]= { "apple", "banana", "orange", "strawberry" }; 
vector<string> word (array, array+4); 

int main() 
{
int choice;
bool menu = true;
do{
cout <<"Please select one of the following options:  \n";

cout << "1: Play\n"
    "2: Help\n"
    "3: Quit\n";

cout << "Enter your selection (1, 2 and 3): ";
cin >> choice;
//*****************************************************************************
// Switch menu to display the menu.
//*****************************************************************************
    switch (choice)
 {
      case 1:
        cout << "You have chosen play\n";
        //int playGame(string word); 
        playGame("word");
        break;
     case 2:
        cout << "You have chosen help\n";
        cout << "Here is a description of the game Hangman and how it is    played:\nThe      word to guess is represented by a row of dashes, giving the number of letters, numbers and category. If the guessing player suggests a letter or number which occurs in the word, the other player writes it in all its correct positions";
        break; 
         case 3:
        cout << "You have chosen Quit, Goodbye.";
        break;
    default:
        cout<< "Your selection must be between 1 and 3!\n";

    }

}while(choice!=3);    
getchar();
getchar();


cout << "You missed " << playGame("programming");
cout << " times to guess the word programming." << endl;
}
4

2 回答 2

2

向量不是答案的一部分。您可以使用数组或向量来完成这项工作。问题(据我了解)是您想从单词列表中选择一个随机单词。这是使用数组的方法

int main() 
{
    size_t sizeOfArray = sizeof array/sizeof array[0]; // calculate the
                                                       // size of the array
    srand(time(0)); // set up random number generator

    ...

       case 1:
           cout << "You have chosen play\n";
           playGame(array[rand()%sizeOfArray]); // pick a random word
           break;
于 2013-10-10T10:34:51.097 回答
1

在高层次上,假设我们决定玩,你的代码会这样做

playGame("word");

换句话说,您总是将单词发送"word"给函数playGame,因此它总是使用单词word。从一组单词中随机选择一个不同的单词显然会在每个游戏中为您提供各种单词,而不是一遍又一遍地使用同一个单词。

当你说

I'm trying to get my vectors to work with the function playGame();

我认为您的意思是playGame(string word)功能,而不是您没有向我们展示的其他功能。

在您的向量中选择了一个随机索引后,index只需将您对 playGame 函数的调用更改如下。玩游戏(单词[索引]);

这将索引到您调用 word 的数组,而不是 word"word"

当然,这意味着不需要数组,当然也不需要是全局的,并且单词向量可以在 main 函数内而不是在全局范围内贴花。

于 2013-10-10T10:35:02.597 回答