Delphi. Учимся на примерах - [16]

Шрифт
Интервал

> 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

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

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

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


>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:= '>';


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.