Delphi. Учимся на примерах
Шрифт:
Таблица 9.1. Свойства компонентов для настройки диапазона угадываемых чисел
Компонент | Свойство | Значение | Пояснение |
---|---|---|---|
Label1 | Caption | Диапазон чисел: | Надпись метки |
Font.Style | [fsBold] | Начертание шрифта — полужирное | |
Left | 8 | Отступ слева | |
Top | 16 | Отступ сверху | |
Label2 | Caption | от | Надпись
|
Font.Style | [fsBold] | Начертание шрифта — полужирное | |
Left | 104 | Отступ слева | |
Top | 16 | Отступ сверху | |
Label3 | Caption | до | Надпись метки |
Font.Style | [fsBold] | Начертание шрифта — полужирное | |
Left | 216 | Отступ слева | |
Top | 16 | Отступ сверху | |
Edit1 | Name | start | Новое имя поля, предназначенного для ввода начального числа диапазона |
Text | 1 | Содержимое поля | |
Left | 128 | Отступ слева | |
Top | 8 | Отступ сверху | |
Width | 57 | Ширина | |
Edit2 | Name | finish | Новое имя поля, предназначенного для ввода конечного числа диапазона |
Text | 1000 | Содержимое поля | |
Left | 256 | Отступ слева | |
Top | 8 | Отступ сверху | |
Width | 57 | Ширина |
Разместите на форме под этими компонентами еще один компонент Label, назовите его pl1 (свойство Name), а свойству Caption присвойте значение Первый игрок:. Справа от метки pl1 разместите компонент Edit, свойству Name которого присвойте значение ch1, а свойству Text — значение 0. Справа от поля ch1 разместите еще один компонент Label. Присвойте ему имя znak1 и очистите свойство Caption.
Под компонентами pl1, ch1 и znak1 разместите аналогичные компоненты для второго игрока, присвоив им имена рl2, ch2 и znak2 соответственно. Свойству рl2.Caption присвойте значение Второй игрок:, свойству ch2.Text — значение 0, а свойство znak2.Caption очистите. Поскольку по умолчанию игру будет начинать первый игрок, мы должны заблокировать ввод для второго игрока. Для этого измените значение свойства Enabled для компонентов ch2 и р12 на False.
Разместите на форме справа от компонентов znak1 и znak2 еще один компонент Label и измените его свойства согласно табл. 9.2.
Таблица 9.2. Свойства нового компонента Label
Свойство | Значение | Пояснение |
---|---|---|
Name | X | Новое имя компонента |
Caption | X | Надпись метки |
Font.Color | clRed | Цвет шрифта — красный |
Font.Name | Courier New | Название шрифта |
Font.Size | 36 | Размер шрифта |
Font.Style | [fsBold] | Начертание
|
Height | 54 | Высота метки |
Ниже всех компонентов разместите компонент Checkbox (флажок) категории Standard. Присвойте его свойству Name значение comp, a свойству Caption — значение Играть против компьютера (проследите также, чтобы свойство Checked было равно False).
Ниже разместите две кнопки (компонент Button категории Standard), присвоив их свойству Caption значения Принять вариант и Новая игра. Полученная форма должна соответствовать рис. 9.1.
Рис. 9.1. Форма для игры "Угадывание чисел"
Разработка программного кода
Прежде всего, объявим переменные, которые будем использовать на протяжении всей программы:
Переменная num соответствует случайно заданное число, переменной kolvo — количество попыток, за которые число было отгадано, переменной big — наибольшее число из названных, а переменной small — наименьшее число из названных.
Теперь напишем две процедуры, которые в случае игры против компьютера будут определять границы нахождения числа. Процедура min будет определять нижнюю границу, а процедура max — верхнюю.
Объявим эти процедуры как закрытые члены класса формы:
После этого создадим сами процедуры в разделе implementation:
Рассмотрим процедуру, которая будет выполняться при создании формы: