![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Примеры программирования задач
8.1.1. Игра «Угадай число» (Delphi) Составим программу‑ игру «Угадай число» (рис. 8.1.1.1).
Рис. 8.1.1.1. Вид формы игры «Угадай число»
В поле Edit1 задается число N для формирования случайного положительного целого числа в интервале [0, N], и это число должен угадать игрок. Кнопкой Загадать число (Button1) формируется это случайное число. Игрок вводит предполагаемое число в поле Edit2 и нажимает кнопку Попытка. Если это число больше загаданного, то в поле Edit3 (Результат) выводится текст подсказки Перелет. Если это число меньше загаданного, то выводится текст Недолет. Наконец, при совпадении выводится текст Угадал. Число использованных попыток выводится в поле Edit4. Разместим на форме соответствующие компоненты и зададим значения свойству Caption. Приведем тексты процедур программы. Var // раздел переменных модуля Unit1 X: Integer; // объявление внешней переменной X - загадываемое число procedure TForm1.Edit1Change(Sender: TObject); // изменение поля Edit1 Var v, e: Integer; // v ‑ значения числа после перевода, e ‑ код ошибки (0-нет) Begin Val(Edit1.Text, v, e); // перевод числа из поля Edit1.Text в V (п. 1.7.5) Button1.Enabled: =e=0; // условие доступности Button1 Button2.Enabled: =False; // блокировка кнопки Button2 (Попытка) Edit2.Enabled: =e=0 // условие доступности поля Edit2 end; procedure TForm1.Edit2Change(Sender: TObject); // изменение поля Edit2 Var v, e: Integer; // v ‑ значения числа после перевода, e ‑ код ошибки (0-нет) Begin Val(Edit2.Text, v, e); // перевод числа из поля Edit2.Text в V Button2.Enabled: = e=0; // условие доступности Button2 end; procedure TForm1.Button1Click(Sender: TObject); //кнопка «Загадай число» var v, e: Integer; // v ‑ значения числа после перевода, e ‑ код ошибки (0-нет) begin Val(Edit1.Text, v, e); // перевод числа из поля Edit1.Text в V Randomize; X: =random(v); // формирование случайного числа X Edit1.Enabled: =False; Button2.Enabled: =True; Edit2.Enabled: = True; Edit2.SetFocus; // установка фокуса на поле Edit2 End; procedure TForm1.Button2Click(Sender: TObject); // кнопка «Попытка» Var v, e: Integer; // v ‑ значения числа после перевода, e ‑ код ошибки (0-нет) Begin Val(Edit2.Text, v, e); // перевод числа из поля Edit2.Text в V If v> X then Edit3.text: ='Перелет' else If v< X then Edit3.text: ='Недолет' else Edit3.text: ='Вы угадали'; Edit4.Text: =IntToStr(StrToInt(Edit4.Text)+1); //число попыток увеличить на 1 Edit2.SetFocus; // установка фокуса на поле Edit2 end; procedure TForm1.Button3Click(Sender: TObject); //кнопка «Очистить» begin Edit1.Text: =''; Edit2.Text: =''; Edit3.Text: =''; Edit4.Text: ='0'; Edit1.Enabled: =True; // разблокировка поля ввода числа N Button1.Enabled: = False; // блокировка кнопки «Загадай число» Button2.Enabled: = False; // блокировка кнопки «Попытка» Edit1.SetFocus; // установка фокуса на поле Edit1 X: = 0 // загадываемое число первоначально равно нулю end; procedure TForm1.Button4Click(Sender: TObject); // кнопка «Выход» begin Close; end; Для формы в качестве обработчика события OnActivate укажем имя процедуры Button3Click ‑ обработки события OnClick кнопки Очистить.
|