在刽子手中强调

时间:2012-09-30 04:23:58

标签: c++

我正在制作一个刽子手游戏并且遇到部分问题。

我从文件中选择了一个随机单词,但是我希望将该单词显示为一系列的 _ _,然后将所选字母与底色中的位置相匹配。

cout <<"1. Select to play the game\n";
cout <<"2. Ask for help\n";
cout <<"3. Select to quit the game\n";

cout << "Enter a selection: ";
int number;
cin >> number;

    while(number < 1 || number > 3 || cin.fail())
    {
        if(cin.fail())
        {
            cin.sync();   
            cin.clear();   
            cout << "You have not entered a number, please enter a menu selection between 1 and 3\n";
            cin >> number;
        }
        else 
        {
            cout << "Your selection must be between 1 and 3!\n";
            cin >> number;
        }
    }

switch (number)
{
    case 1: 
        {
         string word;
         string name;
        cout << " Whats your name? ";
        cin >> name;

        Player player();

          ifstream FileReader;
          FileReader.open("words.txt");

          if(!FileReader.is_open())
            cout << "Error";

          //this is for the random selection of words

          srand(time(0));
          int randnum = rand()%10+1;             

          for(int counter = 0; counter < randnum; counter++)
            {
                getline(FileReader, word, '\n');
            }

                cout << "my word: " << word << "\n"; 

                // get length of word
                int length;


                //create for loop
                for(int i = 0; i < length; i++)
                    cout << "_";

                //_ _ _ _ _


                SetCursorPos(2,10);

                FileReader.close();
                break;

1 个答案:

答案 0 :(得分:1)

我不会为你编写代码,但我会给你一些伪代码的提示:

创建一个包含50个整数的数组(这应该比任何单词长)并将数组的每个元素初始化为0。

现在,数组的每个元素都对应于单词的字母。如果数组是int guessed[50],那么猜测[0]将对应于第一个字母,猜测[1]对应于第二个字母,依此类推。数组中的值将告诉您玩家是否已经发现了该字母。首先,猜测中的所有元素都将为0,这意味着玩家还没有猜到任何一个字母。

然后你要求用户输入一个字母并将其保存在一个名为currentLetter的字符中,你的代码将如下所示:

for (i = 0; i < len(word); i++)
  if word[i] == currentLetter
    guessed[i] = 1

这会将猜测数组中与猜测字母对应的元素设置为一个。

当你想要打印到目前为止猜到的所有字母时,请执行以下操作:

for (i = 0; i < len(word); i++)
  if guessed[i] == 1
    print word[i]
  else
    print "_"

将所有这些添加到while循环中,您将拥有一个可用的程序。