Syronex: software solutions

Number Guessing Game

The following program uses a recursive function to guess a number between 0 and 1000, asking at each iteration whether the guessed number is correct, too low or too high. You can download the source code.

void guess(int lower, int upper, int my_guess) {
  cout << "\nMy guess is "<< my_guess  
       <<". Press 'g' for greater, 'l' for lower or 'e' for equal.\n";
  char ans[2];
  cin >> ans;
  if (strcmp(ans,"e")==0) exit(0);
  else if (strcmp(ans,"g")==0) lower = my_guess;
  else if (strcmp(ans,"l")==0) upper = my_guess;
  if (lower == upper) cout << "user is cheating.\n";
  else guess (lower, upper, (lower + upper)/2);  // call guess within itself.
}

int main() {
  guess(0, 1001, 500);
}