Игра "Угадай число" - C (СИ) (75492)
Формулировка задачи:
Здравствуйте! Помогите мне, пожалуйста. Нужно написать игру «Угадай число». Программа с помощью датчика случайных чисел выбирает число в диапазоне от 0 до 9. Угадать это число за три попытки. После каждой попытки сообщается, больше или меньше названное число задуманного.
Вот мой код:
Вроде бы все работает, но не очень правильно, потому что программа не ограничивается тремя попытками, а после выигрыша игра не заканчивается. Очень нужна помощь,
#include "stdio.h" #include "stdlib.h" #include "conio.h" #include "time.h" int main() { srand (unsigned (time(NULL))); int i, a, b, c; printf("Igra ygadai chislo\n"); printf("Computer zagadal chislo ot 0 do 9\n"); a=rand()%9+0; do { c: printf("Vvedite chislo i nagmite Enter\n"); scanf("%d", &b); if(b==a) { printf("Vi viigraly\n"); //printf("Vi otgadaly s i popytki"); } if(b>a) { printf("Net, vvedennoe chislo bolshe\n"); goto c; } if(b<a) { printf("Net, vvedennoe chislo menshe\n"); goto c; } if(b!=a && i==3) { printf("Vi prigraly\n"); printf("Pravilnoe chislo\n", a); break; } } while(i!=3); getche(); }
Решение задачи: «Игра "Угадай число"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM_OF_ATTEMPTS (3) #define NUMBER_BOUND (10) int main(void) { int number, guessed, attempt; srand(time(NULL)); number = rand() % NUMBER_BOUND; attempt = 1; while ( attempt <= NUM_OF_ATTEMPTS ) { printf("Attempt #%d: ", attempt); scanf("%d", &guessed); if ( guessed == number ) break; printf("%s!\n", ( guessed < number ) ? "bigger" : "smaller"); ++attempt; } printf("You %s!\n", ( attempt > NUM_OF_ATTEMPTS ) ? "loose" : "win"); }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, cstdlib, ctime.
- Определение констант: NUM_OF_ATTEMPTS (количество попыток), NUMBER_BOUND (верхняя граница числа).
- Объявление переменных: number (угадываемое число), guessed (предположение пользователя), attempt (попытка).
- Инициализация генератора случайных чисел srand(time(NULL)).
- Генерация случайного числа в диапазоне от 0 до NUMBER_BOUND (включительно) с помощью выражения rand() % NUMBER_BOUND.
- Запуск цикла while, который будет выполняться до тех пор, пока количество попыток не будет превышать заданное значение.
- В каждой итерации цикла пользователю предлагается ввести предположение о числе, а затем выполняется проверка, равно ли введенное число угадываемому числу.
- Если предположение пользователя верно, цикл прерывается.
- Если предположение пользователя неверно, пользователю выводится сообщение
bigger
илиsmaller
в зависимости от того, больше или меньше введенное число угадываемого числа. - После каждой итерации цикла увеличивается значение переменной attempt.
- По завершении цикла выводится сообщение
You win!
илиYou loose!
в зависимости от того, было ли угадываемое число угадано в пределах заданного количества попыток.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д