Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗВІТ ООП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
409.84 Кб
Скачать

Implementation

{$R *.dfm}

procedure TForm2.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 TForm2.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 Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

Implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

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;

procedure TForm2.ch2Change(Sender: TObject);

begin

end;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

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;

procedure TForm2.compClick(Sender: TObject);

begin

end;

procedure TForm2.Label1Click(Sender: TObject);

begin

end;

end;

end.

Iнтерфейс програми

Завдання 3.