12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
#include <iostream> using namespace std; class NumberGuesser { private: int mid; int low; int high; public: NumberGuesser(int, int); void higher(); void lower(); int getCurrentGuess(); void reset(); }; NumberGuesser::NumberGuesser(int lowerBound = 1, int upperBound = 100) { high = upperBound; low = lowerBound; } void NumberGuesser::higher() { low = mid +1; } void NumberGuesser::lower() { high = mid -1; } int NumberGuesser::getCurrentGuess() { mid =(low + high) / 2; return mid; } void NumberGuesser::reset() { } int main() { NumberGuesser game; cout << "Think of a number between 1 and 100\n"; for (int i=0; i<99; i++) { char answer; cout << "Is the number (h/l/c/r) : " << game.getCurrentGuess() << "?"; cin>> answer; if ('c' == answer) { cout << "You picked " << game.getCurrentGuess() <<"? Great pick.\n"; } if ('h' == answer) { game.higher(); } if ('l'== answer) { game.lower(); } else { game.reset(); } } }