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



>procedure TForm1.compClick(Sender: TObject);

>begin

> if comp.Checked then begin //если флажок установлен

>  //блокируем ввод от второго игрока

>  ch2.Enabled:= False;

>  рl2.Enabled:= False;

>  //включаем ввод от первого игрока

>  ch1.Enabled:= True;

>  pl1.Enabled:= True;

> end

> else begin

>  //если игра идет с человеком, то

>  //включаем ввод для второго игрока

>  ch2.Enabled:= True;

>  рl2.Enabled:= True;

> end;

>end;

Осталось только обработать нажатие кнопки Новая игра:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> if ((StrToInt(finish.Text) > StrToInt(start.Text)) and (StrToInt(start.Text) > 0) and (StrToInt(finish.Text) < 60000))

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

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

Компилируем и запускаем программу на выполнение. Игра в действии показана на рис. 9.2.

Рис. 9.2. Игра "Угадывание чисел" в действии

Полный исходный код модуля

Полный исходный код программного модуля игры "Угадывание чисел" представлен в листинге 9. 1.

Листинг 9.1. Программный модуль игры "Угадывание чисел"

>unit Unit1;


>interface


>uses

> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;


>type TForm1 = class(TForm)

> Button1: TButton;

> Label1: TLabel;

> Label2: TLabel;

> start : TEdit;

> finish: TEdit;

> Label3: TLabel;

> pl1: TLabel;

> ch1: TEdit;

> pl2: TLabel;

> ch2: TEdit;

> comp: TCheckBox;

> Button2: TButton;