📅  最后修改于: 2023-12-03 15:11:11.475000             🧑  作者: Mango
这是一个猜数字的游戏,游戏生成一个 3 位数,并提示用户每位数字是否正确。用户可以根据提示再次猜测,直到猜中为止。
generateRandomNumber()
用于生成一个 3 位的随机数字。checkGuess(int guess, int answer)
用于检查用户猜测是否正确,并给出每位数字是否正确的提示。generateRandomNumber()
生成一个随机数字并存储在变量 answer
中。checkGuess()
进行校验,直到用户猜中为止。#include <iostream>
#include <ctime>
using namespace std;
// 生成随机数
int generateRandomNumber() {
srand((unsigned) time(NULL)); // 随机数种子
int num = rand() % 900 + 100; // 生成 100~999 的随机数
return num;
}
// 检查猜测结果是否正确
bool checkGuess(int guess, int answer) {
int ansDigit[3]; // 存储正确答案每位上的数字
int guessDigit[3]; // 存储用户猜测的数字每位上的数字
int A = 0, B = 0; // 存储数字和位置都正确/数字正确但位置不正确的个数
for (int i = 0; i < 3; i++) {
ansDigit[i] = answer % 10;
answer = answer / 10;
guessDigit[i] = guess % 10;
guess = guess / 10;
if (guessDigit[i] == ansDigit[i]) {
A++;
}
else {
for (int j = 0; j < 3; j++) {
if (guessDigit[i] == ansDigit[j]) {
B++;
break;
}
}
}
}
cout << "结果:" << A << "A" << B << "B" << endl;
return (A == 3);
}
int main() {
int answer = generateRandomNumber(); // 生成随机数字
cout << "欢迎来到猜数字游戏,请输入一个 3 位数:" << endl;
int guess;
do {
cin >> guess;
} while (!checkGuess(guess, answer));
cout << "恭喜你猜中了!" << endl;
return 0;
}
以上就是猜谜游戏 3 数字的具体实现方式。