![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Nataly |
![]()
Сообщение
#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
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не пойму что нужно зацыклить, ведь сравнение должно происходить каждый раз после нажатия на кнопку BbRun ?Что именно пытаешся зацыклить?
|
Nataly |
![]()
Сообщение
#3
|
Гость ![]() |
Сравнение то поисходит, только всего лишь один раз..
![]() выдаст "больше" или "меньше" и дальше не идет.. ![]() |
Michael_Rybak |
![]()
Сообщение
#4
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Выложи весь проект.
|
мисс_граффити |
![]()
Сообщение
#5
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Оно ведь при введении 1 числа и должно 1 раз проверяться.
То есть человек ввел предположение, нажал на кнопку и получил результат.... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Nataly |
![]()
Сообщение
#6
|
Гость ![]() |
Нет, прога должна продолжать работу, пока пользователь не отгадает загаданное число.. не факт, что он сделает это спервого раза..
|
Гость |
![]()
Сообщение
#7
|
Гость ![]() |
Что делать, если размер загружаемых файлов превышает допустимое значение?
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Запаковать проект в архив (без EXE-шника, разумеется), и присоединить...
|
Nataly |
![]()
Сообщение
#9
|
Гость ![]() |
Он у меня 6кб весит, но все равно вылазиет ошибка!
|
Pautina |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Nataly Репутация: ![]() ![]() ![]() |
Посмотрите, плиз!
Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
У тебя просто не генерируется случайное число (точнее, все время N = 0), поэтому программа тебе постоянно выдает "Введенное число больше моего! Попробуй еще раз!", правда?
Попробуй добавить Randomize: a:=InputBox('Диапазон чисел','Введите количество чисел','');
randomize;
n:=random(StrToInt(a)+1);
, тогда N будет отличаться от нуля... |
Pautina |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Nataly Репутация: ![]() ![]() ![]() |
Спасибо огромное!!! РАБОТАЕТ!!
|
Pautina |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Nataly Репутация: ![]() ![]() ![]() |
Здравствуйте, снова нужна ваша помощь! Необходимо модифицировать прогу. В местах, отмеченных !!!, необходимо поставить условие, что если юзер правильно нажимает на кнопку, текст окрашивается в зеленый цвет, если ошибка – в красный! Подскажите, пожалуйста, как это можно осуществить! Заранее огромное спасибо!
Прикрепленные файлы ![]() |
WALdemar |
![]()
Сообщение
#14
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Антон Репутация: ![]() ![]() ![]() |
нужно просто добавить в начале каждого условия
label1.Color:=clred
- это для неправильного и
label1.Color:=clgreen
для верного решения.И не забыть указать в FormActivate Label1.caption:=clblack
|
Pautina |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Nataly Репутация: ![]() ![]() ![]() |
не получается.. к примеру прога выдает "введенное чсло больше", тогда юзер должен нажать на одну из кнопочек > или <. Если нажал правильно - текст выделяется зеленым цветом, неправильно - красным.
Возникает вопрос: как я могу засунуть одну процедуру(нажатие клавиши <,>) в другую? |
мисс_граффити |
![]()
Сообщение
#16
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
нажатие клавиши - это ведь обработчик события, так? может, проще в него засунуть окрашивание?
прямо при выводе проверять на правильность и окрашивать... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Pautina |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Nataly Репутация: ![]() ![]() ![]() |
проблема в том, как проверить эту правильность..
![]() |
мисс_граффити |
![]()
Сообщение
#18
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
так, я запуталась.
что юзер должен обозначать нажатием на кнопку со знаками больше/меньше? то есть когда надо нажимать на какую и какое нажатие считается правильным? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
WALdemar |
![]()
Сообщение
#19
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Антон Репутация: ![]() ![]() ![]() |
а зачем вообще эти кнопки - Больше и Меньше? По логике, число нужно угадывать так:
Например, загадано 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;
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 20:03 |