Условие задачи : Написать программу-игру которая задумывает число от 1 до 10 и предлагает пользователю угадать его за несколько попыток. Число попыток вводит пользователь.
Сложность : средняя .
Для того чтобы решить задачу мы будем использовать цикл repeat until, а условие выхода у нас будет превышение количества попыток.
Давайте создадим каркас с переменными :
uses crt;
var
limit, count, number, otvet : integer ;
begin
end.
Четыре переменные :
1. limit — количество попыток
2. count — какая по счету попытка
3. number — число которое загадал компьютер
4. otvet — число которое ввел пользователь
Теперь сделаем следующее , попросим пользователя ввести число попыток , также для генерации случайных числе нам нужно прописать randomize.

Сразу же давайте присвоим переменной count единицу, т.к. при заходе в цикл у нас будет первая попытка, а уже потом в самом цикле будем её увеличивать.
А переменной number присвоим какое-то случайное число.
write('Введите число попыток : '); readln(limit);
randomize ;
count := 1 ;
number := random(10) + 1;
Теперь нужно добавить цикл, условие выхода которого будет превышение количества попыток.
repeat until(count > limit);
Что мы будем делать в самом цикле ?
Для начала мы выведем какая сейчас идет попытка. Затем попросим пользователя ввести число. Дальше уже у нас пойдут условия.
if (otvet = number) then
begin
writeln('Вы выиграли поздравляю!!!');
break; {выходим из цикла}
end
Если мы угадали число то выводим что выиграли и выходим из цикла. Что если мы не угадали ?
else
begin
writeln('Вы не угадали!!!');
count := count + 1 ;
end;
Если не угадали то выводим что не угадали и увеличиваем попытку на 1 .
Нам понадобиться еще одно условие.
if (count > limit) then
begin
writeln('Вы проиграли');
writeln('Это было число : ', number);
end;
Нужно для того чтобы как только у нас кончились попытки вывести что мы проиграли и вывести число которое мы не угадали.
Весь код программы :
uses crt;
var
limit, count, number, otvet : integer ;
begin
clrscr;
writeln('Игра "Угадай число"');
write('Введите число попыток : '); readln(limit);
writeln('Компьютер загадал число от 1 до 10');
randomize ;
count := 1 ;
number := 1 + random(10);
repeat
write(count, ' попытка : '); readln(otvet);
if (otvet = number) then
begin
writeln('Вы выиграли поздравляю!!!');
break;
end
else
begin
writeln('Вы не угадали!!!');
count := count + 1 ;
end;
if (count > limit) then
begin
writeln('Вы проиграли');
writeln('Это было число : ', number);
end;
until(count > limit);
writeln('Для выхода из игры нажмите Enter');
readln;
end.
Вот результат :
