Программа "Угадай число"

Задача

Отгадать целое число, которое "загадал" компьютер в определенном диапазоне.

Решение

Описание переменных: 

a – число, "загаданное" компьютером;
b – очередное число, вводимое пользователем.

Алгоритм решения задачи: 

Программа генерирует псевдослучайное число, которое записывается в переменную a.

Пока число a не совпадет с числом b, пользователю будет предлагаться ввести очередное число. При этом, если b > a, то на экран будет выдаваться сообщение "Много". Иначе будет проверяться условие b < a. При его положительном значении появится сообщение "Мало", иначе сообщение "Угадал".

Не трудно понять, что если b не больше и не меньше a, то значит оно равно a. В таком случае логическое выражение при while вернет false, и цикл прервется.

Программа на языке Паскаль: 

var
    a,b: integer;
 
begin
    randomize;
    a := random(100);
 
    while a <> b do begin
        write('Введи число: ');
        readln(b);
        if b > a then
            writeln('Много')
        else
            if b < a then
                writeln('Мало')
            else
                writeln('Угадал');
    end;
 
readln
end.

Примечания: 

Угадать число всегда можно не более чем через 6-7 попыток, если делить каждый оставшийся диапазон пополам.

Комментарии

Я добавил уровни сложности:

label w;
var
  d, a, b, count, N, t: integer;
 
begin
  writeln('Выбери сложность:');
  writeln('1-легкая,2-средняя,3-сложная');
  read(d);
  if d = 3 then
  begin
    N := 1000;
    t := 10;
  end;
  if d = 2 then
  begin
    N := 100;
    t := 8;
  end;
  if d = 1 then
  begin
    N := 10;
    t := 5;
  end;
  b := random(N); 
  count := t; 
  Writeln('Я загадал число от 1 до ', N); 
  Writeln('У тебя ', t, ' попыток'); 
  while a <> b do 
  begin
    Read(a); 
    count := count - 1; 
    if a > b then 
      WriteLn('Я загадал число поменьше'); 
    if a < b then 
      Writeln('Я загадал число побольше'); 
    if count = 0 then goto w; 
    if a <> b then 
      Writeln('Осталось попыток:', count);
  end; 
  Writeln('Молодец!Ты отгадал число!'); 
  exit; 
  w: 
  Writeln('Не повезло.Сыграем еще?');
  Writeln('Загаданное число:', b); 
end.

var
  a, b, t: integer;
 
begin
  randomize;
  a := random(1000);
  writeln('Найдите число, которое находится в диапазоне от 0 до 1000');
  writeln('У вас есть 8 попыток');
 
  for t := 1 to 8 do 
  begin
    write('Введи число: ');
    readln(b);
    if b > a then
      writeln('Много')
        else
    if b < a then
      writeln('Мало')
    else
      writeln('Угадал');
  end;
end.

program ygadai;
var
x,a,s,e,r,z:integer;
begin
randomize;
write('введите диопазон числа от 0 до ');
readln(s);
a:=random(s);
writeln('введите к-во попыток');
readln(z);
for x:=1 to z do 
begin
writeln('попробуйте угадать число которое загадал компьютер.Диопазон числа от 0 до ',s);
readln(e);
if a=e then 
begin
writeln('вы угадали!Поздравляем');
r:=r+1;
break
end;
end;
if r<>1 then
writeln('Сегодня не ваш день вы не угадали');
readln
end.

Ответ на от Гость (не проверено)

program Ugadai_Chislo;
 
var
  x, a, d, N : integer;
  q : string;  
   //a - пишет человек
   //d - уровень сложности
   //x - загадываемое число
   //n - имя пользователя
   //N - рандом число
 
begin
  writeln ('     Добро пожаловать в игру "Угадай число"!');
  write ('  Напиши своё имя - ');
  readln (q);
  writeln (' ', q, ', к твоему вниманию представлены 3 уровня сложности. ');
  writeln (' Выбери один из них:');
  writeln (' 1 - easy (лёгкий)');
  writeln (' 2 - medium (средний)');
  writeln (' 3 - hard (сложный)');
  write (' Твой выбор (выбери цифру) > ');
  readln (d);
    if d = 1 then
      begin
        writeln ('  Я загадал тебе число от 1 до 10');
        N := 10;
      end;
    if d = 2 then
      begin
        writeln ('  Я загадал тебе число от 1 до 50');
        N := 50;
      end;
    if d = 3 then
      begin
        writeln ('  Я загадал тебе число от 1 до 100');
        N := 100;
      end;
 
  randomize;
  x := random(N);
    while a <> x do begin
      write (' Введи своё число > ');
      readln (a);
    if a > x then
      writeln (' Я загадал число поменьше')
        else 
          if a < x then
          writeln(' Я загадал число побольше')
            else
            writeln (' ', q, ', Умничка! Ты угадал моё число!');
    end;
 
  writeln (' Теперь нажми Enter, чтобы закрыть игру...'); 
  readln
 
end.

Ответ на от Гость (не проверено)

Program Ugaday_Chislo;
var
 a : integer;
 
  begin
  writeln('Привет, как тебя зовут ?');
  readln();
  writeln('Загадай число от 1 до 100 и я отгадаю его с 7 попыток');
  writeln('Загадал ? Жми Enter');
  readln();
  writeln('Это число 50 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3 ');
  readln(a);
 if a=1 then Writeln('Это число 75 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3 ');
 if a=2 then Writeln('Это число 25 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3 ');
 if a=3 then Writeln('Угадал!!');
 Read(a);
case a of
   1: writeln('Это число 87 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   2: writeln('Это число 63 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   4: writeln('Это число 37 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');
   5: writeln('Это число 13 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');   
 end;
   Readln(a);
case a of
   1: writeln('Это число 93 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   2: writeln('Это число 57 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   3: writeln('Угадал!');
   4: writeln('Это число 43 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');
   5: writeln('Это число 7 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');   
end;
  Readln(a);
 case a of
   1: writeln('Это число 96 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   2: writeln('Это число 54 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   3: writeln('Угадал!');
   4: writeln('Это число 46 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');
   5: writeln('Это число 4 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');   
end;
  Readln(a);
  case a of
   1: writeln('Это число 98 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   2: writeln('Это число 52 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   3: writeln('Угадал!');
   4: writeln('Это число 48 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');
   5: writeln('Это число 2 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');   
end;
  readln(a);
  case a of
   1: writeln('Это число 99 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   2: writeln('Это число 51 ?, если больше нажми 1 если меньше нажми 2 если угадал жми 3');
   3: writeln('Угадал!');
   4: writeln('Это число 49 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');
   5: writeln('Это число 1 ?, если больше нажми 4 если меньше нажми 5 если угадал жми 3');   
end;
end.