> then {проверяем, не выходит ли заданное пользователем число за допустимые пределы}
> {загадаем случайное число в заданном диапазоне}
> num:= Random(StrToInt(finish.Text) – StrToInt(start.Text)) + StrToInt(start.Text)
> else ShowMessage('Неверный диапазон!');
> //обнуляем все, и придаем программе начальный вид
> znak1.Caption:= '';
> znak2.Caption:= '';
> ch1.Enabled:= True;
> ch2.Enabled:= False;
> pl1.Enabled:= True;
> pl2.Enabled:= False;
> x.Caption:= 'X';
> ch1.Text:= '0';
> ch2.Text:= '0';
> //очистим массивы наибольших и наименьших чисел
> for i:= 1 to kolvo+1 do begin
> minimum[i]:= 0;
> maximum[i]:= 0;
> big:= StrToInt(finish.Text); //наибольшее число
> small:= StrToInt(start.Text); //наименьшее число
> end;
> kolvo:= 0; //количество использованных попыток
>end;
>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
> minimum[kolvo]:= StrToInt(ch1.Text); {добавляем число в массив наименьших чисел, выданных первым игроком}
> min();//ищем наименьшее число
> end;
> //после всех расчетов, компьютер выдает свой вариант
> ch2.Text:= IntToStr(Random(big– small)+ small);
> end;
> //проверяем вариант компьютера и ставим соответствующий знак
> 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 + 'В этот раз победил компьютер!' + #13#10 + ' Число угадано за ' + IntToStr(kolvo) + ' попытки');
> end;
>end;
>end.
⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter09.