Читаем Delphi. Учимся на примерах полностью

 num:= Random(StrToInt(finish.Text) – StrToInt(start.Text)) + StrToInt(start.Text);

 kolvo:= 0; //обнуляем количество попыток

 big:= StrToInt(finish.Text); //самое большое число

 small:= StrToInt(start.Text); //самое маленькое число

end;

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

Самое главное событие — нажатие кнопки Принять вариант. Создадим для этого кнопки обработчик события 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;

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже