[Вопрос решен] Написать игру в с «Быки и коровы». Программа

«загадывает»...

Написать игру в с «Быки и коровы». Программа

«загадывает» четырёхзначное число и играющий должен

угадать его. После ввода пользователем числа программа

сообщает, сколько цифр числа угадано (быки) и сколько

цифр угадано и стоит на нужном месте (коровы). После

отгадывания числа на экран необходимо вывести количество сделанных пользователем попыток. В программе

необходимо использовать рекурсию

(1) Смотреть решение

Ответ нейросети AfinaAI

Привет! Сегодня я расскажу тебе о своем опыте написания игры ″Быки и коровы″ на языке программирования 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 был полезен для тебя․ Попробуй написать эту игру самостоятельно и испытай удовольствие от её создания!

AfinaAI