Задача:
Написать программу, реализующую игру "Угадай число".*
Код программы:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "time.h"
#define N 3 // кол-во цифр в числе
#define DEBUG // отладка
void main()
{
clrscr();
{
char pl[N]; // игрок
char pc[N]; // компьютер
int a[N]; // a[i] == 1 если i-я цифра
// pc совпала с одной из цифрой pl
int ugad; // угадано чисел
int mesto; // из них на своих местах
int i, j; // индексы
time_t t;
printf ("Игра:%25sУгАдАй ЧиСлО!!\n");
srand((unsigned)time(&t));
for (i=0; i<N; i++)
pc[i]=rand() % 10 + 48;
//48-код символа '0'
#ifdef DEBUG
printf ("\n\nКомпьютер задумал 3-х значное число:\n");
for (i=0; i<N; i++)
#endif
do
{
printf ("\nВаш Вариант => ");
scanf ("%s", &pl);
for (i=0; i<N; i++)
a[i]=0;
// проверка сколько цифр угадано
ugad=0;
// каждую цифру игрока
// сравним с цифрами ПК
for (i=0; i<N; i++)
for (j=0; j<N; j++)
{
if ((pl[i]==pc[j])&& !a[j])
{
ugad++;
a[j]=1; // запретим сравнивать эту
// цифру ПК с еще не проверенными
// цифрами игрока
break;
}
}
// проверим, сколько на своих местах
mesto=0;
for(i=0; i<N; i++)
if (pl[i]==pc[i])
mesto++;
printf ("Угадано: %i. На своих местах: %i",ugad,mesto);
}
while ((ugad<N) || (mesto<N));
printf ("\n\nПоздравляю! Вы угадали число\n");
}
getch();
}
Результат:
* Правила игры: Компьютер загадал трехзначное число. Вам надо за меньшее количество ходов угадать это число. после каждого хода компьютер дает подсказку - если та или иная цифра в загаданном числе. К примеру: компьютер загадал число 782. Вы предположили, что это число 281. Компьютер дает подсказку: Вы угадали две цифры "2" и "8", но при этом одно из них стоит на своем месте "8".