ch2.Text:= '0';
//очистим массивы наибольших и наименьших чисел
for i:= 1 to kolvo+1 do begin
minimum[i]:= 0;
maximum[i]:= 0;
big:= StrToInt(finish.Text); //наибольшее число
smalclass="underline" = 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.
Глава 10
Вход в систему
Постановка задачи
Разработать программу, которая осуществляет вход в систему. Интерфейс входа в систему сначала скрывает все от пользователя, а затем просит ввести пароль. Если пароль верный, то разблокируем систему и выходим из программы. В противном случае, продолжаем требовать ввод пароля.
Разработка формы
Создайте новый проект Delphi и измените свойства формы согласно табл. 10.1.
Таблица 10.1. Свойства формы программы входа в систему
Свойство | Значение | Пояснение |
---|---|---|
Caption | Очистить заголовок | |
Align | alCustom | Запрет на перемещение окна |
ВorderStyle | bsNone | Убираем границу и заголовок окна |
FormStyle | fsStayOnTop | Окно программы будет всегда расположено поверх других окон |
Position | poDesktopCenter | |
Height | 130 | Высота |
Width | 130 | Ширина |
Разместите на форме компонент Label категории Standard и измените его свойства согласно табл. 10.2.
Таблица 10.2. Свойства компонента
Свойство | Значение | Пояснение |
---|---|---|
Caption | Logon | Надпись метки |
Font.Color | clNavy | Цвет текста — темно-синий |
Font.Size | 20 | Размер шрифта |
Font.Style | [fsBold] | Начертание шрифта — полужирное |
Left | 16 | Отступ слева |
Тор | 0 | Отступ сверху |