Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2009, 20:19   #1
Telas
Новичок
Джуниор
 
Регистрация: 14.11.2009
Сообщений: 3
По умолчанию Игра в угадайку

Нужно написать программу, играющую с пользователем в "угадайку" - пользователь загадывает число, компьютер пытается его отгадать. Компьютер называет свои варианты, а пользователь отвечает лишь "больше" либо "меньше". Для организации диалога воспользоваться функцией InputBox.
Сделал таким образом:
Код:
var
 n:integer;
 s,b,m,r:string;

begin
m:='<';
b:='>';
r:='=';
repeat
n:=1+random(100);
ShowMessage('Задуманое число  ' +IntToStr(n)+ '?');
s:=InputBox('Укажите задуманое число меньше или больше','Если задуманое число меньше,  ' +IntToStr(n)+ ' ,то введите "<" если больше' +IntToStr(n)+ ' ,  то ">", а если угадал то "="','');
  if s=m then
    MessageDlg('Точно меньше ' +IntToStr(n)+ '?',mtWarning,[mbOk],0);
  if s=b then
    MessageDlg('Хм... значит не  ' +IntToStr(n),mtWarning,[mbOk],0);
  if s=r then
    MessageDlg('Наконец то угадал!',mtInformation,[mbOk],0);
 until s=r
 end;
а нужно чтоб программа делала следующим образом.
Например первое число выдаёт 50, пользователь говорит <, прога делит 50 на 2 и суёт 25, пользователь отвечает >, прога спрашивает 37 ( или 38 ) надеюсь понятно написал. Вот как это реализовать?

Последний раз редактировалось Telas; 16.11.2009 в 15:47.
Telas вне форума Ответить с цитированием
Старый 16.11.2009, 15:49   #2
Telas
Новичок
Джуниор
 
Регистрация: 14.11.2009
Сообщений: 3
По умолчанию Разобрался

Все, разобрался. Сделал вот так.
Код:
var
 n:extended;
 s,b,m,r:string;
begin
randomize;
m:='<';
b:='>';
r:='=';
n:=1+random(100);
repeat
ShowMessage('Çàäóìàíîå ÷èñëî ' +FloatToStr(RoundTo(n, 0))+ '?');
s:=InputBox('Óêàæèòå çàäóìàííîå ÷èñëî ìåíüøå èëè áîëüøå','Åñëè çàäóìàííîå ÷èñëî ìåíüøå ' +FloatToStr(RoundTo(n, 0))+ ' , òî ââåäèòå "<" åñëè áîëüøå ' +FloatToStr(RoundTo(n, 0))+ ' , òî ">", à åñëè óãàäàëè, òî "="','');
  if s=m then
    begin
       MessageDlg('Òî÷íî ìåíüøå ' +FloatToStr(RoundTo(n, 0))+ '?',mtWarning,[mbOk],0);
        n:=(n/2);
    end;
  if s=b then
    begin
        MessageDlg('Õì... Çíà÷èò íå ' +FloatToStr(RoundTo(n, 0)),mtWarning,[mbOk],0);
        n:=n/2+n;
    end;
  if s=r then
    MessageDlg('Íàêîíåö-òî óãàäàë!',mtInformation,[mbOk],0);
 until s=r
 end;
Telas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра VictorS Помощь студентам 1 31.05.2009 16:34
Игра на C# ЧеширскийКот Общие вопросы .NET 3 11.04.2009 11:25
Игра [LOL] Помощь студентам 2 13.06.2007 18:36