Привет! Сегодня я расскажу тебе о своем опыте написания игры ″Быки и коровы″ на языке программирования C ․ Эта игра очень интересная и увлекательная, а также помогает развить логическое мышление․
Для начала, я создал функцию ″генерации числа″․ Эта функция генерирует случайное четырёхзначное число из разных цифр․ Я использовал функцию rand, чтобы сгенерировать случайные числа от 0 до 9, и проверку на повторение цифр в числе․ Если цифры повторяются, генерация числа повторялась до тех пор, пока не появится уникальное число․
После генерации числа, я создал функцию ″игры″․ В этой функции я использовал рекурсию․ В каждом вызове функции, пользователь вводит свою догадку, и программа проверяет, сколько цифр угадано и стоит на нужном месте (коровы) и сколько цифр угадано (быки)․ При каждом вызове функции счетчик попыток увеличивался на 1․После каждой попытки, программа показывала пользователю, сколько быков и коров он угадал․ Если пользователь угадал четыре цифры и их позиции, программа выводила сообщение о победе и количество сделанных попыток;Вот код программы⁚
cpp
#include
#include
#include
// Функция генерации числа
int generateNumber {
srand(time(0));
int number;
do {
number rand % 9000 1000;
} while (!isUniqueNumber(number));
return number;
}
// Функция проверки уникальности числа
bool isUniqueNumber(int number) {
int digits[10] {0};
while (number) {
int digit number % 10;
if (digits[digit] 1) {
return false;
}
digits[digit] 1;
number /= 10;
}
return true;
}
// Функция игры
void playGame(int targetNumber, int attempts) {
int guess;
std⁚⁚cout << ″Введите вашу догадку⁚ ″;
std⁚⁚cin >> guess;
int cows 0;
int bulls 0;
int targetDigits[4] {targetNumber / 1000, (targetNumber / 100) % 10, (targetNumber / 10) % 10, targetNumber % 10};
int guessDigits[4] {guess / 1000, (guess / 100) % 10, (guess / 10) % 10, guess % 10};
for (int i 0; i < 4; i ) { if (guessDigits[i] targetDigits[i]) { bulls ; } else { for (int j 0; j < 4; j ) { if (guessDigits[i] targetDigits[j]) { cows ; break; } } } } std⁚⁚cout << ″Быки⁚ ″ << bulls << std⁚⁚endl; std⁚⁚cout << ″Коровы⁚ ″ << cows << std⁚⁚endl; if (bulls 4) { std⁚⁚cout << ″Поздравляю! Вы отгадали число за ″ << attempts << ″ попыток․″ << std⁚⁚endl; return; } playGame(targetNumber, attempts 1); }
int main {
int targetNumber generateNumber;
playGame(targetNumber, 1);
return 0;
}
Вот и всё! Я надеюсь, что мой опыт в написании игры ″Быки и коровы″ на C был полезен для тебя․ Попробуй написать эту игру самостоятельно и испытай удовольствие от её создания!