gpt4 book ai didi

c++ - 如何检查number1,number2和number3是否等于a,b和c,但不一定按此顺序

转载 作者:行者123 更新时间:2023-12-01 12:53:13 25 4
gpt4 key购买 nike

我有一个生成三个随机数的游戏,您必须猜测它们。我不知道如何检查这3个数字是否与生成的数字相同。我已经写了这个,但是我知道它确实很糟糕并且不可读。我在寻找更好的东西,但没有找到任何东西。有什么方法可以使其变得更好和更易读?

bool Guess(int number1, int number2, int number3)
{
int guess1, guess2, guess3;

std::cout << "Enter three numbers separated by spaces: ";

std::cin >> guess1 >> guess2 >> guess3;

if (guess1 == number1)
{
if (guess2 == number2)
{
if (guess3 == number3)
{
return true;
}
else
{
return false;
}
}
else if (guess2 == number3)
{
if (guess3 == number2)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (guess2 == number1)
{
if (guess1 == number2)
{
if (guess3 == number3)
{
return true;
}
else
{
return false;
}
}
else if (guess1 == number3)
{
if (guess3 == number2)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (guess3 == number1)
{
if (guess2 == number2)
{
if (guess1 == number3)
{
return true;
}
else
{
return false;
}
}
else if(guess1 == number2)
{
if (guess2 == number3)
{
return true;
}
else
{
return false;
}

}
else
{
return false;
}
}
else
{
return false;
}

}

这是我如何生成这些数字的片段
int GenerateNumber(int level)
{
if (level == 1)
{
return (rand() % 2) + level; // if level is one than number range is from 1 to 2
}
else
{
return (rand() % level) + level; // else number range is from level to (level * 2) - 1
}
}

int a = GenerateNumber(level);
int b = GenerateNumber(level);
int c = GenerateNumber(level);

最佳答案

如果顺序无关紧要,则将顺序更改为易于执行的顺序。为此,您可以将猜测和数字放在单独的数组中,对它们进行排序,然后进行比较。通过使用 std::multiset / std::unordered_multiset 为您完成所有这些工作,您可以使整个过程更加容易。看起来像

bool Guess(int number1, int number2, int number3)
{
int guess1, guess2, guess3;

std::cout << "Enter three numbers separated by spaces: ";

std::cin >> guess1 >> guess2 >> guess3;

return std::multiset<int>{guess1, guess2, guess3} == std::multiset<int>{number1, number2, number3};
}

关于c++ - 如何检查number1,number2和number3是否等于a,b和c,但不一定按此顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60061527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com