Угадай числовую игру, как добавить или отобразить количество оставшихся догадок с помощью цикла while - PullRequest
0 голосов
/ 11 июля 2020

Игра по угадыванию чисел, в которой пользователь угадывает число от 0 до 20, и я хочу, чтобы он отображал, сколько попыток осталось для пользователя, например, максимальное количество попыток равно 5, и если пользователь ошибся с первой попытки, он будет отобразить что-то вроде « осталось попыток: 4 », как мне реализовать это в моем коде?

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

int main()
{
    time_t t;
    srand((unsigned)time(&t));
    int randomNumber = rand() % 21;
    int num;
    int guess = 0;

    printf("\nThis is a guessing game.");
    printf("\nGuess 5 times only\n");

    printf("\nEnter your guess:");
    scanf("%d",&num);

    while (num != randomNumber && guess < 5){ //checks if num is equal or not to randomnumber and count is less than 5 or limit 5

        if(num > randomNumber){ // checks if num is greater than randomNumber
            printf("Too high! try again:");
            scanf("%d",&num);
            guess++;
        }

        if(num < randomNumber){ //checks if num is less than randomNumber
            printf("Too low! try again:");
            scanf("%d",&num);
            guess++;
        }

        if(num == randomNumber){ //checks if num is equal to randomNumber
            printf("You got it right!\n");
            return 0;
        }

        if(guess == 5) //checks if tries is 5 then exits program.
        {
            printf("your out guess of guesses!\n");
            return 0;
        }

    }

    return 0;
}


Ответы [ 3 ]

0 голосов
/ 11 июля 2020

Если вы пытаетесь напечатать значение в al oop, что-то вроде printf(“You have %d guesses left\n”,5-guess); может сработать

0 голосов
/ 11 июля 2020

У вас уже есть ответ, но я бы посоветовал вам использовать символы c константы #define GUESS_NUM 4 вместо фактических чисел в ваших операторах и вашей программе в целом, в таких программах это не имеет значения, но вы можете запутаться очень легко в больших проектах.

Кроме того, ваш l oop должен заканчиваться, когда предположение достигнет 4, потому что у вас уже есть одно предположение перед l oop. Можно написать примерно так:

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

#define GUESS_NUM 4

int main()
{
    time_t t;
    srand((unsigned)time(&t));
    int randomNumber = rand() % 21;
    int num;
    int guess = 0;

    printf("\nThis is a guessing game.");
    printf("\nGuess 5 times only\n");

    printf("\nEnter your guess:");
    scanf("%d",&num);

    while (num != randomNumber && guess < GUESS_NUM){ //checks if num is equal or not to randomnumber and count is less than 5 or limit 5
        
        if(num > randomNumber){ // checks if num is greater than randomNumber
            printf("tries left : %d\n", GUESS_NUM-guess);
            printf("Too high! try again:");
            scanf("%d",&num);
            guess++;
        }

        if(num < randomNumber){ //checks if num is less than randomNumber
            printf("tries left : %d\n", GUESS_NUM-guess);
            printf("Too low! try again:");
            scanf("%d",&num);
            guess++;
        }

        if(num == randomNumber){ //checks if num is equal to randomNumber
            printf("You got it right!\n");
            return 0;
        }

        if(guess == GUESS_NUM) //checks if tries is 5 then exits program.
        {
            printf("your out guess of guesses!\n");
            return 0;
        } 
        
        
    }

    return 0;
}
0 голосов
/ 11 июля 2020

Вы можете добавить это внутри вашего while l oop (в конце)

// For total no of guesses = 5, if that is n then n - 1 - guess  
printf("tries left %d\n", 4 - guess);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...