Number Gusser in c ++ mit Funktion und Mittelpunkt

Ich versuche, einen Code für die Nummernübermittlung mit den folgenden Funktionen zu schreiben: Die Funktion "playOneGame" sollte einen Rückgabetyp "void" haben. Es sollte ein vollständiges Ratespiel im Bereich von 1 bis 100 implementiert werden.
Die shouldPlayAgain-Funktion sollte einen booleschen Rückgabetyp haben. Es sollte den Benutzer auffordern, zu bestimmen, ob der Benutzer erneut spielen möchte, ein Zeichen einzulesen und dann true zurückzugeben, wenn das Zeichen ein "y" ist, und andernfalls false zurückzugeben. Außerdem sollten Sie die Hilfsfunktionen getUserResponseToGuess und getMidpoint implementieren. Sie sollten in Ihrer playOneGame-Funktion aufgerufen werden. getUserResponseToGuess. Diese Funktion sollte den Benutzer mit dem Satz „ist es? (h / l / c): “mit dem Wert, der das Token ersetzt. Es sollte ein Zeichen zurückgeben. Das Zeichen sollte einer von drei möglichen Werten sein: "h", "l" oder "c". Es sollte die folgende Signatur haben: char getUserResponseToGuess (int guess) getMidpoint. Diese Funktion sollte zwei Ganzzahlen akzeptieren und den Mittelpunkt der beiden Ganzzahlen zurückgeben. Wenn sich zwei Werte in der Mitte des Bereichs befinden, sollten Sie konsequent den kleineren der beiden Werte auswählen. Es sollte die folgende Signatur haben: int getMidpoint (int low, int high) Ich beginne damit, aber ich kann die Logik immer noch nicht verstehen. Dies ist, was ich bisher habe.

#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;

}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage