# Problem00

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

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
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
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
}
}```