Delphi. Учимся на примерах | страница 29



Самое главное событие — нажатие кнопки Принять вариант. Создадим для этого кнопки обработчик события OnClick:

>procedure TForm1.Button2Click(Sender: TObject);

>begin

> //увеличиваем количество попыток на единицу

> kolvo:= kolvo + 1;

> if not comp.Checked then //если идет игра с человеком

> begin

>  if pl1.Enabled then begin //если ход первого игрока

>  //если вариант больше загаданного числа, ставим знак >

>  if StrToInt(ch1.Text) > num then znak1.Caption:= '>';

>  //если вариант меньше загаданного числа, ставим знак <

>  if StrToInt(ch1.Text) < num then znak1.Caption:= '<';

>  if StrToInt(ch1.Text) = num then //если число угадано

>  begin

>   znak1.Caption:= '='; //изменим знак на "="

>   //вместо знака "X" показываем загаданное число

>   х.Caption:= IntToStr(num);

>   //выводим сообщение о победе первого игрока

>   ShowMessage('Победил первый игрок!' + #13#10 + 'Число угадано за ' + IntToStr(kolvo) + ' попытки')

>  end;

>  //передаем ход второму игроку

>  pl1.Enabled:= False;

>  ch1.Enabled:= False;

>  ch2.Enabled:= True;

>  pl2.Enabled:= True;

>  Exit; //прерываем выполнение процедуры

> end;

> if pl2.Enabled then begin //если ход второго игрока

>  {сравниваем загаданное число с вариантом второго игрока и ставим соответствующий знак}

>  if StrToInt(ch2.Text) > num then znak2.Caption:= '>';

>  if StrToInt(ch2.Text) < num then znak2.Caption := '<';

>   if StrToInt(ch2.Text) = num then begin

>    znak2.Caption := '=';

>    x.Caption:= IntToStr(num);

>    ShowMessage('Победил второй игрок!' + #13#10 + 'Число угадано за ' + IntToStr(kolvo) + ' попытки')

>   end;

>  end;

>  //передаем ход первому игроку

>  рl2.Enabled:= False;

>  ch2.Enabled:= False;

>  ch1.Enabled:= True;

>  pl1.Enabled:= True;

>  Exit;

> end;

> if comp.Checked then begin //если игра против компьютера

>  {проверяем вариант первого игрока и ставим соответствующий знак}

>  if StrToInt(ch1.Text) > num then znak1.Caption:= '>';

>  if StrToInt(ch1.Text) < num then znak1.Caption:= '<';

>  if StrToInt(ch1.Text) = num then begin

>   znak1.Caption:= '=';

>   x.Caption:= IntToStr(num);

>   ShowMessage('Вы победили!' + #13#10 + 'Число угадано за ' + IntToStr(kolvo) + ' попытки');

>   Exit;

>  end;

>  //если вариант первого игрока больше загаданного числа

>  if znak1.Caption = '>' then begin

>   maximum[kolvo]:= StrToInt(ch1.Text); {добавляем в массив наибольших чисел вариант первого игрока}

>   max();

>   //ищем наибольшее число

>  end;

>  //если вариант первого игрока меньше загаданного числа

>  if znak1.Caption = '<' then begin