Нужна ваша помощь! Программа «Угадай число» делает один проход и дальше не работает. Пытаюсь зациклить, но выводится ошибка. Как правильно оформить это все в цикл?
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.
а зачем вообще эти кнопки - Больше и Меньше? По логике, число нужно угадывать так: Например, загадано 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;