IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Угадай число
Nataly
сообщение 2.11.2006 14:23
Сообщение #1


Гость






Нужна ваша помощь! Программа «Угадай число» делает один проход и дальше не работает. Пытаюсь зациклить, но выводится ошибка. Как правильно оформить это все в цикл?


procedure TForm1.FormActivate(Sender: TObject);
begin
MEdit.SetFocus;
Label1.Caption:='Сыграем в игру?'
end;


procedure TForm1.BbRunClick(Sender: TObject);
begin
a:=InputBox('Диапазон чисел’,'Введите количество чисел','');
n:=StrToInt(a);
n:=random(n+1);
Label1.Caption:='Я запомнил число! Сумеешь угадать?';
MEdit.SetFocus;
BbRun.Visible:=False;
BbResult.Visible:=True;
end;

procedure TForm1.BbResultClick(Sender: TObject);
begin
if MEdit.Text='' then exit;
i:=StrToInt(Trim(MEdit.Text));
if i>n then
        begin
            Label1.Caption:='Введенное число больше моего! Попробуй еще раз!';
            MEdit.Clear;
            MEdit.SetFocus;
     end;
else
 if i<n then
  begin
            Label1.Caption:='Введенное число меньше моего! Попробуй еще раз!';
            MEdit.Clear;
            MEdit.SetFocus;
end
 else
 begin
      Label1.Caption:='Поздравляю!!!! Ты угадал!!!';
      b:=InputBox('Сообщение',' Повторить?','');
      if InputBox.Text:='äà' then
      begin
      bbResult.Visible:=False;
      bbRun.Visible:=True;
      end
else
Form1.Close;
     end;
end;

procedure TForm1.BbCloseClick(Sender: TObject);
begin
Form1.Close;
end;
end.

 К началу страницы 
+ Ответить 
Reptile
сообщение 2.11.2006 14:58
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Не пойму что нужно зацыклить, ведь сравнение должно происходить каждый раз после нажатия на кнопку BbRun ?Что именно пытаешся зацыклить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Nataly
сообщение 2.11.2006 23:05
Сообщение #3


Гость






Сравнение то поисходит, только всего лишь один раз.. sad.gif
выдаст "больше" или "меньше" и дальше не идет.. sad.gif
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 2.11.2006 23:21
Сообщение #4


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Выложи весь проект.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 2.11.2006 23:27
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Оно ведь при введении 1 числа и должно 1 раз проверяться.
То есть человек ввел предположение, нажал на кнопку и получил результат....


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Nataly
сообщение 2.11.2006 23:35
Сообщение #6


Гость






Нет, прога должна продолжать работу, пока пользователь не отгадает загаданное число.. не факт, что он сделает это спервого раза..
 К началу страницы 
+ Ответить 
Гость
сообщение 2.11.2006 23:48
Сообщение #7


Гость






Что делать, если размер загружаемых файлов превышает допустимое значение?
 К началу страницы 
+ Ответить 
volvo
сообщение 2.11.2006 23:52
Сообщение #8


Гость






Запаковать проект в архив (без EXE-шника, разумеется), и присоединить...
 К началу страницы 
+ Ответить 
Nataly
сообщение 3.11.2006 0:03
Сообщение #9


Гость






Он у меня 6кб весит, но все равно вылазиет ошибка!
 К началу страницы 
+ Ответить 
Pautina
сообщение 3.11.2006 0:20
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Посмотрите, плиз!


Прикрепленные файлы
Прикрепленный файл  ____________.rar ( 6.91 килобайт ) Кол-во скачиваний: 171
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.11.2006 1:19
Сообщение #11


Гость






У тебя просто не генерируется случайное число (точнее, все время N = 0), поэтому программа тебе постоянно выдает "Введенное число больше моего! Попробуй еще раз!", правда?

Попробуй добавить Randomize:
a:=InputBox('Диапазон чисел','Введите количество чисел','');
randomize;
n:=random(StrToInt(a)+1);
, тогда N будет отличаться от нуля...
 К началу страницы 
+ Ответить 
Pautina
сообщение 3.11.2006 10:37
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Спасибо огромное!!! РАБОТАЕТ!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 23.11.2006 23:40
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Здравствуйте, снова нужна ваша помощь! Необходимо модифицировать прогу. В местах, отмеченных !!!, необходимо поставить условие, что если юзер правильно нажимает на кнопку, текст окрашивается в зеленый цвет, если ошибка – в красный! Подскажите, пожалуйста, как это можно осуществить! Заранее огромное спасибо!


Прикрепленные файлы
Прикрепленный файл  ____________.rar ( 8.13 килобайт ) Кол-во скачиваний: 170
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
WALdemar
сообщение 24.11.2006 18:00
Сообщение #14





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


нужно просто добавить в начале каждого условия
label1.Color:=clred
- это для неправильного и
label1.Color:=clgreen
для верного решения.
И не забыть указать в FormActivate
Label1.caption:=clblack
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 25.11.2006 0:12
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


не получается.. к примеру прога выдает "введенное чсло больше", тогда юзер должен нажать на одну из кнопочек > или <. Если нажал правильно - текст выделяется зеленым цветом, неправильно - красным.
Возникает вопрос: как я могу засунуть одну процедуру(нажатие клавиши <,>) в другую?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 25.11.2006 10:49
Сообщение #16


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


нажатие клавиши - это ведь обработчик события, так? может, проще в него засунуть окрашивание?
прямо при выводе проверять на правильность и окрашивать...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 25.11.2006 12:31
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


проблема в том, как проверить эту правильность.. sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 25.11.2006 15:22
Сообщение #18


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


так, я запуталась.
что юзер должен обозначать нажатием на кнопку со знаками больше/меньше?
то есть когда надо нажимать на какую и какое нажатие считается правильным?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
WALdemar
сообщение 25.11.2006 18:19
Сообщение #19





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


а зачем вообще эти кнопки - Больше и Меньше? По логике, число нужно угадывать так:
Например, загадано 63, диапазон от 1 до 100.

50? -нет, больше
75? -нет, меньше
63? -да, правильно.
Я такую лабу еще на первом курсе делал, по математической логике. вот ее маленький кусок. Вам это надо?

n:=(random(100)); 
writeln(n);
writeln('vvedite chislo ot 1 do 100');
i:=1;
 repeat 
  begin 
   writeln('popitka ',i);
   inc(i);
   readln(chislo);
   if chislo=n then 
    writeln('vi ugadali') 
   else 
     if chislo>n then
       writeln('>')
     else
      writeln('<');
      end;
 until chislo=n;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 28.07.2025 20:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"