Практическая работа № 15
«Ханойские башни»
Цель работы -создать компьютерную версию игры-головоломки «Ханойские башни». Игровая доска содержит семь клеток, расположенных в ряд. На трех левых клетках стоят белые фишки, на трех правых – черные. Центральная клетка пуста. Задача заключается в том, чтобы, делая допустимые ходы, поменять фишки местами. Правила ходов такие.
1. Белые фишки могут ходить только вправо, а черные – только влево.
2. Ходить разрешается только на свободное поле.
3. Разрешены перемещения на соседнее поле и «прыжок» через одну фишку.
В роли фишек выступают кнопки с изображением, например, цветных треугольников, направленных так, чтобы они указывали допустимое направление ходов. Кнопки будут передвигаться по игровой доске, созданной при помощи панели.
|
Описание плана разработки программы
1. Открыть новый проект.
2. Разместить на форме экземпляры компонентов: панель Panel, кнопка с изображением BitBtn.
3. Выполнить следующие действия:
Таблица 15. Свойства проекта 15
Выделенный объект | Вкладка окна Object Inspector | Имя свойства/ имя события | Действие | ||
Form1 | Properties | Caption | Установка имени формы «Головоломка» | ||
Panel1 (Вкладка Standard) | Properties | Height | Присвоить значение 65 | ||
Width | Присвоить значение 401 | ||||
Caption | Очистить значение | ||||
BitBtn1 (Вкладка Additional) | Properties | Height | Присвоить значение 49 | ||
Width | Присвоить значение 49 | ||||
Left | Присвоить значение 8 | ||||
Top | Присвоить значение 8 | ||||
BitBtn2 | Properties | Height | Присвоить значение 49 | ||
Width | Присвоить значение 49 | ||||
Left | Присвоить значение 64 | ||||
Top | Присвоить значение 8 | ||||
BitBtn3 | Properties | Height | Присвоить значение 49 | ||
Width | Присвоить значение 49 | ||||
Left | Присвоить значение 120 | ||||
Top | Присвоить значение 8 | ||||
BitBtn4 | Properties | Height | Присвоить значение 49 | ||
Width | Присвоить значение 49 | ||||
Left | Присвоить значение 232 | ||||
Top | Присвоить значение 8 | ||||
BitBtn5 | Properties | Height | Присвоить значение 49 | ||
Width | Присвоить значение 49 | ||||
Left | Присвоить значение 288 | ||||
Продолжение таблицы 15 | |||||
Top | Присвоить значение 8 | ||||
Выделенный объект | Вкладка окна Object Inspector | Имя свойства/ имя события | Действие | ||
BitBtn6 | Properties | Height | Присвоить значение 49 | ||
Width | Присвоить значение 49 | ||||
Left | Присвоить значение 344 | ||||
Top | Присвоить значение 8 | ||||
4. Сохраните проект.
5. Создать рисунки при помощи стандартной программы Paint. Задайте размеры рисунков 45x45 пикселов (в режиме увеличения).
6. Создать две картинки с именами Left.bmp и Right.bmp, поместить их в папку проекта. Рисунок с именем Left.bmp предназначен для левых кнопок, рисунок с именем Right.bmp – для правых кнопок.
7. Назначить рисунки кнопкам.
Продолжение таблицы 15.
BitBtn1, BitBtn2, BitBtn3,BitBtn4,BitBtn5, BitBtn6 | Properties | Caption | Очистить значение |
Glyph (Значок) | Щелкнуть на кнопке построителя. Открыть окно Picture Editor. Щелкните на кнопке Load. В диалоговом окне выберете файл с изображением кнопки и щелкните на кнопке Открыть. Щелкнуть на кнопке Ok, и выбранная картинка появится на кнопке. |
8. Необходимо хранить два числа: номер клетки, в которой находится кнопка; признак «цвета» фишки», т.е. в какую сторону может ходить кнопка.
9. Номер клетки умножить на два. Если фишка черная, прибавить к числу единицу.
10. Задать свойство Tag (Тег) для всех кнопок.
Таблица 16. Свойства клеток
Значение свойства Tag | Комментарий |
Первая клетка, белая фишка | |
Вторая клетка, белая фишка | |
Третья клетка, белая фишка | |
Четвертая клетка, черная фишка | |
Пятая клетка, черная фишка | |
Шестая клетка, черная фишка |
11. Создать дополнительную переменную для пустой клетки
var n: Integer = 4;
12. Создать глобальную переменную
win : Integer = 24; {все фишки в сумме должны переместиться на 24 клетки}
13. Программируем выполнение хода фишки.
Таблица 17. Свойства хода фишки
Выделенный объект | Вкладка окна Object Inspector | Bмя события | Действие |
BitBtn1 | Events | OnClick | В процедуру BitBtn1Click передается параметр – объект Sender. Он представляет именно тот объект, который вызвал событие, и может дать доступ к его свойствам. Надо специально указать, что объект Sender в данном случае следует считать кнопкой. Чтобы обратиться к свойству Tag данного объекта, записывают (Sender as TBitBtn).Tag. |
14. Сохраните проект, запустите и протестируйте его.
Дата добавления: 2014-12-02; просмотров: 1231;