牛和公牛游戏- C++

牛和公牛游戏- C++,c++,C++,问题-执行一个名为“奶牛和公牛”的猜谜游戏。奶牛代表正确猜测的数量。多头代表在正确位置正确猜测的数量。例如,计算机有1234只,用户猜测2135只,结果是:1头公牛和3头奶牛 我已经写了代码,但是我一直得到0头公牛和0头奶牛。我已经玩了一个多小时,似乎仍然找不到问题。这个版本是用字符而不是数字完成的,但同样的规则也适用 #include "std_lib.h"; vector<char> letters; vector<char> answers; void defi

问题-执行一个名为“奶牛和公牛”的猜谜游戏。奶牛代表正确猜测的数量。多头代表在正确位置正确猜测的数量。例如,计算机有1234只,用户猜测2135只,结果是:1头公牛和3头奶牛

我已经写了代码,但是我一直得到0头公牛和0头奶牛。我已经玩了一个多小时,似乎仍然找不到问题。这个版本是用字符而不是数字完成的,但同样的规则也适用

#include "std_lib.h";

vector<char> letters;
vector<char> answers;

void defineletters() {

  letters.push_back('a');
  letters.push_back('b');
  letters.push_back('c');
  letters.push_back('d');
}

int testcows(char a) {

  int manycows = 0;

  for (int i = 0; i < letters.size(); ++i) {
    if (a == letters[i]) {
      ++manycows;
    }
  }

  return manycows;
}

int testposition() {

  int manybulls = 0;

  for (int i = 0; i < letters.size(); ++i) {
    if (answers[i] == letters[i]) {
      ++manybulls;
    }
  }

  return manybulls;
}

int main() {

  int cows = 0;

  char answer1;
  char answer2;
  char answer3;
  char answer4;

  cin >> answer1 >> answer2 >> answer3 >> answer4;
  answers.push_back(answer1);
  answers.push_back(answer2);
  answers.push_back(answer3);
  answers.push_back(answer4);

  cows = testcows(answer1) + testcows(answer2) + testcows(answer3) +
         testcows(answer4);

  cout << testposition() << "Bulls\n" << cows - testposition()
       << "Cows\n";

  keep_window_open("-");
}

defineletters从未被调用,因此向量从未被初始化,因此长度为零。

defineletters从未被调用->字母未初始化

哇,我知道这将是一件非常简单的事情哈哈。非常感谢。也许你应该在玩代码几个小时之前修复它。在这种状态下似乎很无聊。请尝试向代码调试语句中添加一些额外的输出,以便查看代码中发生了什么。。。。或者最好启动一个调试器,逐行检查程序。