Читаем Delphi полностью

  //если вариант первого игрока меньше загаданного числа

  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;

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

После того как второй игрок выдал свой вариант ответа, мы выполняем те же проверки, и, если число не угадано, вновь даем право попытаться угадать загаданное число первому игроку. После того как кто-то из игроков дает вариант ответа, мы пополняем счетчик kolvo, чтобы потом сообщить, сколько попыток использовалось, чтобы угадать число.

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

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

Для того чтобы можно было переключаться между режимами игры "с человеком" и "против компьютера", создадим обработчик события OnClick для флажка comp:

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных