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

 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;

 x: TLabel;

 znak1: TLabel;

 znak2: TLabel;

 procedure FormCreate(Sender: TObject);

 procedure compClick(Sender: TObject);

 procedure Button1Click(Sender: TObject);

 procedure Button2Click(Sender: TObject);

private

 { Private declarations }

 procedure min;

 procedure max;

public

 { Public declarations }

end;


var

 Form1: TForm1;

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

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


implementation

{$R *.dfm}


//процедура нахождения наименьшего числа

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.compClick(Sender: TObject);

begin

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

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

  ch2.Enabled:= False;

  рl2.Enabled:= False;

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

  ch1.Enabled:= True;

  pl1.Enabled:= True;

 end

 else begin

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

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