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



Ниже разместите две кнопки (компонент Button категории Standard), присвоив их свойству Caption значения Принять вариант и Новая игра. Полученная форма должна соответствовать рис. 9.1.

Рис. 9.1. Форма для игры "Угадывание чисел"

Разработка программного кода

Прежде всего, объявим переменные, которые будем использовать на протяжении всей программы:

>var

> Form1: TForm1;

> num, j, i, kolvo, big, small: integer;

> maximum, minimum: array [1..100] of integer; {массивы максимальных и минимальных чисел}

Переменная num соответствует случайно заданное число, переменной kolvo — количество попыток, за которые число было отгадано, переменной big — наибольшее число из названных, а переменной small — наименьшее число из названных.

Теперь напишем две процедуры, которые в случае игры против компьютера будут определять границы нахождения числа. Процедура min будет определять нижнюю границу, а процедура max — верхнюю.

Объявим эти процедуры как закрытые члены класса формы:

>type

> TForm1 = class(TForm)

> …

>private

> { Private declarations }

> procedure min();

> procedure max();

>public

> { 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;

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