21xrx.com
2025-04-01 01:18:01 Tuesday
文章检索 我的文章 写文章
C++编写的猜数字游戏程序
2023-07-01 03:44:25 深夜i     9     0
C++ 猜数字 游戏程序

猜数字游戏是一种能够提高人们逻辑思维和运算能力的游戏,也是一种广泛应用于计算机编程领域的经典案例。本文介绍一个基于C++语言编写的猜数字游戏程序,帮助读者了解该程序的实现方法和工作原理,以及如何进行改进和扩展。

猜数字游戏程序的基本功能是:计算机随机生成一个包含若干个数字的序列,玩家通过多次猜测这个序列来逐步猜中所有数字的位置和数值。一般来说,这个序列的长度和数字的范围可以通过程序参数来设定,以便灵活应对不同的游戏要求和难度级别。

下面是一个简单的猜数字游戏程序的代码,其中包括了创建序列、输入猜测、检查结果等基本功能:

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
const int MAXN = 100;
vector<int> sequence;
vector<int> guess;
void init_sequence(int length, int range) {
  sequence.clear();
  for (int i = 0; i < length; i++) {
    sequence.push_back(rand() % range +1);
  }
}
void get_guess(int length, int range) {
  guess.clear();
  cout << "Please input " << length << " integers (1-" << range << "):" << endl;
  for (int i = 0; i < length; i++) {
    int item;
    cin >> item;
    guess.push_back(item);
  }
}
int check_result() {
  int correct_pos = 0, correct_num = 0;
  for (int i = 0; i < sequence.size(); i++) {
    if (sequence[i] == guess[i]) {
      correct_pos++;
    } else {
      for (int j = 0; j < guess.size(); j++) {
        if (sequence[i] == guess[j]) {
          correct_num++;
          break;
        }
      }
    }
  }
  cout << "Correct position: " << correct_pos << endl;
  cout << "Correct number: " << correct_num << endl;
  return correct_pos == sequence.size();
}
int main() {
  int length, range, round = 0;
  cout << "Please input length and range of number sequence:" << endl;
  cin >> length >> range;
  srand(time(NULL));
  init_sequence(length, range);
  while (!check_result()) {
    round++;
    cout << "Round " << round << ": ";
    get_guess(length, range);
  }
  cout << "Congratulations! You win after " << round << " rounds." << endl;
  return 0;
}

该程序采用了较为简单的程序结构和算法实现,因此可以作为初学者练习C++编程和猜数字游戏的基础练习。读者可以根据自己的实际需求,进一步优化和扩展该程序,例如增加难度级别、人机对战、图形界面等功能,以便更好地实现游戏的乐趣和挑战。

  
  

评论区

请求出错了