Курс — «Программирование на C для начинающих». Проекты и практические задания. #39 Проект 3: Игра «Угадай число»
Здравствуйте, дорогие друзья.
В этом разделе мы создадим простую консольную игру «Угадай число» на языке C. Этот проект поможет вам закрепить знания о работе с генерацией случайных чисел, вводом-выводом, условиями и циклами. Игра будет запрашивать у пользователя угадать загаданное компьютером число в заданном диапазоне.
Описание проекта
Цель проекта — создать консольное приложение, которое загадывает случайное число в заданном диапазоне и запрашивает у пользователя угадать это число. Программа должна предоставлять пользователю подсказки, указывая, больше или меньше загаданное число, чем введенное пользователем.
Требования
- Программа должна загадывать случайное число в заданном диапазоне (например, от 1 до 100).
- Программа должна запрашивать у пользователя угадать число.
- Программа должна предоставлять подсказки пользователю, указывая, больше или меньше загаданное число, чем введенное пользователем.
- Программа должна завершаться, когда пользователь угадывает число.
- Программа должна обрабатывать некорректный ввод пользователя.
Реализация проекта
Рассмотрим пошаговую реализацию игры «Угадай число».
- Создание основной структуры программы:
1 2 3 4 5 6 7 8 |
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { printf("Welcome to the Guess the Number game!\n"); return 0; } |
2. Генерация случайного числа:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); // Инициализация генератора случайных чисел int secret_number = rand() % 100 + 1; // Генерация случайного числа от 1 до 100 printf("Welcome to the Guess the Number game!\n"); printf("I have selected a number between 1 and 100. Try to guess it!\n"); return 0; } |
3. Запрос ввода числа и предоставление подсказок:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); // Инициализация генератора случайных чисел int secret_number = rand() % 100 + 1; // Генерация случайного числа от 1 до 100 int guess; int attempts = 0; printf("Welcome to the Guess the Number game!\n"); printf("I have selected a number between 1 and 100. Try to guess it!\n"); do { printf("Enter your guess: "); scanf("%d", &guess); attempts++; if (guess < secret_number) { printf("Too low! Try again.\n"); } else if (guess > secret_number) { printf("Too high! Try again.\n"); } else { printf("Congratulations! You guessed the number in %d attempts.\n", attempts); } } while (guess != secret_number); return 0; } |
4. Обработка некорректного ввода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); // Инициализация генератора случайных чисел int secret_number = rand() % 100 + 1; // Генерация случайного числа от 1 до 100 int guess; int attempts = 0; printf("Welcome to the Guess the Number game!\n"); printf("I have selected a number between 1 and 100. Try to guess it!\n"); do { printf("Enter your guess: "); if (scanf("%d", &guess) != 1) { printf("Invalid input. Please enter a number between 1 and 100.\n"); while (getchar() != '\n'); // Очистка буфера ввода continue; } attempts++; if (guess < 1 || guess > 100) { printf("Please enter a number between 1 and 100.\n"); continue; } if (guess < secret_number) { printf("Too low! Try again.\n"); } else if (guess > secret_number) { printf("Too high! Try again.\n"); } else { printf("Congratulations! You guessed the number in %d attempts.\n", attempts); } } while (guess != secret_number); return 0; } |
Тестирование программы
После завершения написания программы важно протестировать её на различных входных данных, чтобы убедиться, что она работает корректно.
Примеры тестов:
- Угадывание числа:
Enter your guess -> 50 -> Too low! Try again. -> Enter your guess -> 75 -> Too high! Try again. -> Enter your guess -> 60 -> Congratulations! You guessed the number in 3 attempts.
- Некорректный ввод:
Enter your guess -> abc -> Invalid input. Please enter a number between 1 and 100. -> Enter your guess -> 50 -> Too low! Try again.
- Ввод числа вне диапазона:
Enter your guess -> 101 -> Please enter a number between 1 and 100. -> Enter your guess -> 50 -> Too low! Try again.
Создание игры «Угадай число» — это отличный способ закрепить знания о работе с генерацией случайных чисел, вводом-выводом, условиями и циклами в языке C. Этот проект помогает понять, как работать с пользовательским вводом и обрабатывать ошибки. Вы можете расширить этот проект, добавив поддержку различных уровней сложности, ограничение количества попыток и другие полезные функции. Практика в написании таких проектов поможет вам стать более уверенным и опытным программистом на языке C.
На этом все. Всем хорошего дня!