Problem00

mail@pastecode.io avatar
unknown
scheme
3 years ago
4.7 kB
1
Indexable
Never
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//defining functions
int nComputerGuess(int, int); // function for computers' guess
int nUserGuess(int, int); //  function for user's guess
int nRandomNumber(int, int); // function for random number
void nScores(int, int); // and function for the scores 
int main () {
	int nMin = 1; // setting the range from 1 to 101 because the secret number can be 100, and so the range also includes 100
	int nMax= 101;
	int nComputerScore, nUserScore; // variables for scores of each player 
		printf("Welcome to Guess The Number Game. Play and Win. \n");
		nComputerScore = nComputerGuess(nMin, nMax); // called the function for computers guess and set its score to be the returned variable
		nUserScore = nUserGuess(nMin, nMax);  // called the function for users guess and set its score to be the returned variable
		nScores(nComputerScore, nUserScore); // and called the function for the scores
		
	return 0;
}
 //function declaration

int nRandomNumber(int nMin, int nMax){ // declared the function for random number 
	return (rand()%(nMax - nMin))+nMin; // you subtract the max number (say 101) buy the min number (say 1) so that we gett 100 numbers starting with the number 1

}
int nComputerGuess(int nMin, int nMax){
	int nCompGuess; // this is the variable for computer guess
	int nUserInput; // this is the variable for user's secret number 
	int nCounter = 1; // set counter to 1 so that if it guesses in the first try it has at least 1 as a score in the end. 
	srand(time(NULL)); // to get random set of numbers whenever we run the program 

	printf("Please enter your  secret number: \n");
	scanf("%d", &nUserInput);

	nCompGuess = nRandomNumber(nMin, nMax); //so the computer initial guess is random number from 1-100
	printf("\n The computer guessed: %d\n", nCompGuess);

	while( nCompGuess != nUserInput ){ // while he doesn't guess the number 
		if (nCompGuess < nUserInput){ // and if the computer guess guesses a number smaller than the user's input 
			printf("\n The secret number is bigger than %d\n ", nCompGuess); // then its a bigger number 
			nMin = nCompGuess + 1; // to make the computer smarter, we make the minimum to the number he already guessed plus 1 so he wouldn't guess that number 
} 
		else {
			printf("\n The secret number is smaller than %d\n", nCompGuess);
			nMax = nCompGuess; // to make the computer smarter, we make the maximum value to that guess so that its a range between minimum and that number 

    	}
    	nCounter++; // increase the counter to keep track of how many guesses 
    	nCompGuess = nRandomNumber(nMin, nMax); // calling the function again, so he guesses again but with new parameters 
    	printf(" The computer guessed: %d \n", nCompGuess);

	}
	printf("Correct. Indeed %d is the user's secret number. \n", nCompGuess); 
	printf("The computer's guesses are : %d \n", nCounter); 
	return nCounter;

}
int nUserGuess(int nMin, int nMax){
	int nUserGuess1; // variable for user's guess
	int nCompSecretNum; // variable for computer secret number 
	int nCounter1 = 1; // set counter to 1 so that if he guesses in the first try to have at least 1 guess. 
	srand(time(NULL)); //to get random set of numbers whenever we run the program 
	printf("Please enter your guess for computer's secret number: \n");
	scanf("%d", &nUserGuess1);
	nCompSecretNum = nRandomNumber(nMin, nMax); // so the computer secret number is random number from 1-100
	while( nUserGuess1 != nCompSecretNum){ // while user hasnt guessed it 
		if ( nUserGuess1 < nCompSecretNum ){ // if he entered a smaller number than the computer secret number 
			printf("The secret number is bigger than %d\n", nUserGuess1); // then the number is bigger 
		} else{
			printf("The secret number is smaller than %d\n", nUserGuess1); // else is smaller 
		}
		nCounter1++; // increase the counter to keep score 
		printf("Please guess again: \n");
		scanf("%d", &nUserGuess1); 
	}
	printf("Correct. Indeed %d is the computer's secret number. \n", nUserGuess1);
	printf("The user's guesses are: %d \n", nCounter1);
		return nCounter1;

}
void nScores(int nComputerScore, int nUserScore){ // function to print the scores
	if ( nComputerScore < nUserScore ){ // if the users score is biggger than the computer score 
		printf("The winner is the computer. \n"); // computerr won
	}
	else if ( nComputerScore > nUserScore ){ // if the computers score is bigger than the computer score 
		printf("The winner is the user. \n"); // user won 
	}
	else{
		printf("The result is a tie. We have two winners. \n"); // else its a tie 
	}
}