Напишем еще одну небольшую программу на С++. Это игра, в которой компьютер (то есть программа) загадывает число и предлагает пользователю угадать его. Если пользователь называет верное число, то выдается сообщение и предлагается поиграть еще. Если число неверное, то программа сообщает, больше или меньше оно, чем нужно.
Ведется подсчет числа попыток, и в зависимости от этого выводятся разные сообщения.
Можно отработать технологию двоичного поиска и потренироваться в циклах.
В программе использованы два цикла. Один внешний (работа программы, пока пользователь согласен продолжить), второй внутренний (сам процесс отгадывания и подсчет попыток).
Оба цикла – do-while, то есть с постусловием. Можно использовать другие циклы.
Вот, вроде, и все.
Текст программы с комментариями:
Ведется подсчет числа попыток, и в зависимости от этого выводятся разные сообщения.
Можно отработать технологию двоичного поиска и потренироваться в циклах.
В программе использованы два цикла. Один внешний (работа программы, пока пользователь согласен продолжить), второй внутренний (сам процесс отгадывания и подсчет попыток).
Оба цикла – do-while, то есть с постусловием. Можно использовать другие циклы.
Вот, вроде, и все.
Текст программы с комментариями:
//программа Угадай числоПроцесс игры:
#include <iostream>
#include <ctime>
using namespace std;
void main()
{
//загаданное число, угадываемое число, количество попыток
int number, usernumber, numberOfAttempts;
//символьная переменная
char YesNo;
//инициализация генератора случайных чисел
srand(time(NULL));
//цикл программы - внешний
do
{
//программа загадывает случайное число
number = rand()%1000 + 1;
cout<<"My number between 1 and 1000\n";
cout<<"Can you guess?\n";
//обныление числа попыток
numberOfAttempts=0;
//начинается отгадывание
do
{
cout<<"Make attempt: "<<numberOfAttempts + 1<<endl;
cout<<"Enter the number: ";
cin>>usernumber;
//увеличиваем число попыток
numberOfAttempts++;
//число угадано
if(number==usernumber)
{
cout<<"Excellent! You guessed the number\n";
}
//число не угадано
else
{
if(usernumber<number)
{
cout<<"Too small number. Try again\n";
}
else
{
cout<<"too big number. Try again\n";
}
}
} while(number!=usernumber);//пока число не угадано
//в зависимости от числа попыток
//выводим разные сообщения
if(numberOfAttempts<10)
cout<<"Or you know the secret, or you're lucky\n";
else
{
if(numberOfAttempts==10)
cout<<"Aha! You know the secret!\n";
else
cout<<"You have to develop your abilities!\n";
}
//предложение играть дальше
cout<<"Want to play again (y or n)?";
cin>>YesNo;
} while(YesNo=='Y'||YesNo=='y');
cin.get();
return;
}
