牛和公牛游戏- c++

Cows and Bulls Game - C++

本文关键字:c++ 游戏 公牛      更新时间:2023-10-16

问题-实现一个名为奶牛和公牛的猜谜游戏。奶牛代表正确猜测的数量。多头代表在正确位置上正确猜测的数量。例如,计算机有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() << "Bullsn" << cows - testposition()
       << "Cowsn";
  keep_window_open("-");
}

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

从未调用defineletters(),因此vector对象从未初始化,因此vector对象的长度为0。