Парижский Сергей Михайлович
Шрифт:
{ Public declarations }
end;
После этого создадим сами процедуры в разделе implementation:
//процедура нахождения наименьшего числа
procedure TForm1.min;
begin
for i:=1 to kolvo do begin
for j:=1 to kolvo do begin
{Если число меньше наименьшего, то оно становится наименьшим}
if minimum[j] > small then small:= minimum[j];
end;
end;
end;
//процедура нахождения наибольшего числа
procedure TForm1.max;
var temp: integer;
begin
temp:= StrToInt(finish.Text);
for i:=1 to kolvo do begin
for j:=1 to kolvo do begin
if temp > maximum[j] then
if maximum[j] > 0 then temp:= maximum[j]; {если число больше наибольшего…}
end;
end;
if ( (temp<>0) and (temp<>StrTolnt(finish.Text)) ) then
{… и если число входит в допустимый диапазон, то оно становится наибольшим}
big:= temp;
end;
Рассмотрим процедуру, которая будет выполняться при создании формы:
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize; //включаем генератор случайных чисел
//загадываем случайное число из заданного диапазона
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;