Gusser numérico em c ++ usando função e ponto médio
Estou tentando escrever um código para o número gusser usando as funções: A função playOneGame deve ter um tipo de retorno nulo. Ele deve implementar um jogo de adivinhação completo no intervalo de 1 a 100.
A função shouldPlayAgain deve ter um tipo de retorno booleano. Ele deve solicitar ao usuário que determine se ele deseja jogar novamente, leia um personagem e, em seguida, retorne true se o personagem for um "y" e retorne false. Além disso, você deve implementar as funções auxiliar getUserResponseToGuess e getMidpoint. Eles devem ser chamados dentro da sua função playOneGame. getUserResponseToGuess. Esta função deve solicitar ao usuário a frase “é? (h / l / c): “com o valor substituindo o token. Deve retornar um caractere. O caractere deve ser um dos três valores possíveis: 'h', 'l' ou 'c'. Ele deve ter a seguinte assinatura: char getUserResponseToGuess (int guess) getMidpoint. Essa função deve aceitar dois números inteiros e retornar o ponto médio dos dois números inteiros. Se houver dois valores no meio do intervalo, escolha sempre o menor dos dois. Ele deve ter a seguinte assinatura: int getMidpoint (int baixo, int alto) Começo com ele, mas ainda não consigo entender a lógica dele. É isso que tenho até agora.
#include<iostream>
using namespace std;
void playOneGame;
char getUserResponseToGuess(int guess);
int getMidpoint ( int low, int high);
int main() {
do
{
playOneGame();
} while (shouldPlayAgain());
return 0;
}
void playOneGame
{
int a = 100;
cout << "\nGuess a number between 1 and 100. " <<endl;
getUserResponseToGuess ( a);
}
char getUserResponseToGuess(int guess)
{
while (true)
{
int guess = getMidpoint(minimum, maximum);
std::cout << "\nIs it [h]igher/[l]ower/[e]qual to " << guess << "? ";
char answer;
if (!(std::cin >> answer))
{
std::cerr << "error reading user input, program exiting\n";
exit(1);
}
if (answer == 'h')
minimum = guess + 1;
else if (answer == 'l')
maximum = guess - 1;
else if (answer == 'e')
{
std::cout << "Well, isn't that nice.\n";
return;
}
if (minimum > maximum)
{
std::cerr << "hey, you lied to me!\n";
, exit(1);
}
}
}
int getMidpoint ( int low, int high)
{
int mid;
mid = (low + high) / 2;
return mid;
}