1
votes

I got my program to fully work, all except I need the program to stop asking after 5 failed attempts. I have absolutely no idea how to go about that. What it is suppose to do, if the number entered is incorrect 5 times in a row, there would then be a sorry message at the end. I can't figure out how to insert the counter into the code, I know what I put in is probably nowhere near correct.

P.S. The code has to have multiple functions. Some I'd rather put into one myself but instruction say multiple.

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

int number;

void welcomeMessage(){
    printf("Welcome to my new guessing game!\n");
    printf("Let's get started!\n");
}

int randomNumber(int number){

    int range;

    srand(time(NULL));
    range = (20 - 1) + 1;
    number = rand() % range + 1;

    return number;
}

int guessInput(){
    int guess;

    printf("I'm thinking of a number between 1 and 20.\n");
    printf("Care to give it a guess? Be careful! You only get 5 tries!: ");
    scanf("%d", &guess);

    return guess;
}

int guess_input(){
    int guess;
    scanf("%d", &guess);
    return guess;
}

int wrongAnswer(int guess){
    if(guess < number)
    {   
        printf("Try again, your guess is too low: ");
        return 1;
    } else if(guess > number) { 
        printf("Give it another try, your guess was a bit too high: ");
        return 1;
    }
    return 0;
}

int correctAnswer(int guess){
    if(guess == number){
        printf("Great job! That time you got it right!\n");
        return 0;
    } else{
        return 1;
    }
}

void sorryMessage(int number){
    printf("Sorry, the correct number was %number.\n");
    printf("Better luck next time!");
}


int main(){
    int number;
    int loopCount = 5
    int guess;
    int correct_answer = 1;
    int wrong_answer = 1;

    welcomeMessage();
    number = randomNumber();
    guessInput();
    do {
        correct_answer = correctAnswer(guess);
        wrong_answer = wrongAnswer(guess);
        guess = guess_input();
    }   
    while(correct_answer == 1);
    if(loopcount = 5){
        sorryMessage
    }

    return 0;
}
1

1 Answers

0
votes

I have made minimal changes to your program to get it to compile and run as expected.

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

int number;

void welcomeMessage(){
    printf("Welcome to my new guessing game!\n");
    printf("Let's get started!\n");
}

int randomNumber(){

    int range;

    srand((int)time(NULL));
    range = (20 - 1) + 1;

    number = rand() % range + 1;

    return number;
}

int guessInput(){

    int guess;

    printf("I'm thinking of a number between 1 and 20.\n");
    printf("Care to give it a guess? Be careful! You only get 5 tries!: ");
    scanf("%d", &guess);

    return guess;
}

int guess_input(){

    int guess;
    scanf("%d", &guess);

    return guess;
}

int wrongAnswer(int guess){

    if(guess < number)
    {
        printf("Try again, your guess is too low: ");
        return 1;

    }
    else if(guess > number)
    {
        printf("Give it another try, your guess was a bit too high: ");
        return 1;
    }
    return 0;
}

int correctAnswer(int guess){

    if(guess == number){
        printf("Great job! That time you got it right!\n");
        return 1;
    } else{
        return 0;
    }
}

void sorryMessage(int number){
    printf("Sorry, the correct number was %d\n",number);
    printf("Better luck next time!");
}


int main(){
    int number;

    int loopCount = 0;

    int guess;

    int correct_answer;

    int wrong_answer;

    welcomeMessage();
    number = randomNumber();
    do
    {
        loopCount += 1;
        if( loopCount > 5)
        {
            sorryMessage(number);
            break;
        }
        guess = guessInput();
        correct_answer = correctAnswer(guess);
        wrong_answer = wrongAnswer(guess);

    } while( !correct_answer );


    return 0;

}