#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/* forward declarations, to make sure we can define functions in any order we like.
 */

int pick_random(int high);
int pick_random2(int low, int high);
int human_guesses();
int computer_guesses();



int pick_random(int high)

{
	int number;
	int result;

	number = rand();
	result = number % (high + 1);
	return result;
}


int pick_random2(int low, int high)
{
	int number;
	int result;

	number = pick_random(high-low);
	result = number + low;
	return result;
}


int human_guesses()
{
	int number;
	int tries = 1;
	int guess;

	number = pick_random(1000);
	number = pick_random(1000);
	while(1)
	{
		printf("number of tries: %d\n", tries);
		printf("enter your guess:\n");
		scanf_s("%d", &guess);

		if (guess == number)
		{
			printf("congrats!!! number of tries = %d\n", tries);
			break;
		}
		else if (guess < number)
		{
			printf("the number is greater than %d\n", guess);
		}
		else
		{
			printf("the number is less than %d\n", guess);
		}

		printf("\n");
		tries = tries + 1;
	}

	return tries;
}


int computer_guesses()
{
	int tries = 1;
	int low = 0;
	int high = 1000;
	int guess;
	int answer;

	while(1)
	{
		guess = (low + high)/2;
		printf("number of tries: %d\n", tries);
		printf("my guess is %d:\n", guess);
		printf("enter -1 if true number is smaller, 0 if equal, 1 if larger\n");
		scanf("%d", &answer);

		if (answer == 0)
		{
			printf("I found the number in %d tries. Can you beat that?\n", tries);
			break;
		}
		else if (answer == -1)
		{
			high = guess;
		}
		else
		{
			low = guess;
		}
		tries = tries + 1;
		printf("\n");
	}

	return tries;
}



int main()
{
	srand(time((time_t *) 0));

	computer_guesses();
	human_guesses();

}