Содержание
1.Постановка задачи
2. Теоретическая часть
3. Проектирование приложения
3.1 Модульная структура приложения
4. Реализация приложения
4.1 Класс BOARD. В классе содержатся следующие методы
4.2 ANALIZ. В классе содержатся следующие методы
4.3 RW. В классе содержатся следующие методы
5. Интерфейс приложения
5.1 Внешний вид приложения
5.2 Последовательность работы с приложением
Задание: Разработать программу для оценки шахматной ситуации на доске, используя графический пользовательский интерфейс. Исходные фигуры: король, ферзь, ладья, пешка.
Вывод результатов работы программы должен осуществляется двумя способами:
На экран
В файл
Для реализации поставленной задачи используется библиотека визуальных компонентов (VisualComponentLibrary, VCL). Она содержит большое количество классов, предназначенных для быстрой разработки приложений. Библиотека написана на ObjectPascal и непосредственно связана с интегрированной средой разработки приложений C++ Builder. Несмотря на название, в VCL содержатся главным образом невизуальные компоненты, однако имеются и визуальные.
Для работы с графикой использовался класс TCanvas из модуля (Graphics. hpp).
Описание:
Класс TCanvas является основой графической подсистемы C++Builder. Канва обеспечивает:
Загрузку и хранение графических изображений
Создание новых и изменение хранимых изображений с помощью пера, кисти, шрифта
Рисование и закраску различных фигур, линий, текстов
Комбинирование различных изображений
Из библиотеки VCL использовались следующие компоненты:
Panel.
Панель - контейнер для группировки других компонентов. Может использоваться также как компонент отображения текста.
OpenDialog и SaveDialog.
Используются для осуществления диалога с пользователем при сохранении или загрузке файла.
Button
Кнопка для выполнения пользователем каких-то команд.
Image
Используется для хранения изображения фигур, на которые можно ссылаться.
MainMenu.
Невизуальный компонент, позволяет конструировать и создавать на форме полосу главного меню, а также сопутствующие выпадающие меню.
3. П
роектирование приложения
3.1.1 Board
Этот модуль содержит класс BOARD, который осуществляет прорисовку шахматной доски с фигурами.
3.1 2 Analiz
Этот модуль содержит класс ANALIZ, в котором осуществляется правильность расстановки королей и оценка шахматной ситуации.
3.1 3 RWfile
Этот модуль содержит класс RW, в котором осуществляется чтение и запись исполняемой программы.
3.1 4 Main
В этом модуле осуществляется работа приложения.
Листинг всех модулей приведен в приложении А.
4.1 Класс
BOARD. В классе содержатся следующие методы
FieldDraw
. Рисует квадратное поле. Передаваемые параметры: размеры рамки (rk), битмап, в котором рисуется поле (doskap).
BoardDraw
. Рисует шахматную доску. Передаваемыми параметрами ялвяется: координаты клетки, битмап.
FigDraw
. Рисует фигуры на доске. Передаваемые параметры: координаты фигуры, изображение фигуры.
RamkaDraw
. Рисует рамку вокруг рабочей клетки. Передаваемые параметры: координаты клетки.
CanvasBoardDraw
. Рисует шахматную доску с фигурами на форме. Передаваемые параметры: координаты (x, y), относительно которых начинается прорисовка шахматной доски, канва объекта, на котором необходимо рисовать.
4.2
ANALIZ. В классе содержатся следующие методы
Ocenka
. Оценивает ситуацию на доске (шах, мат, игра продолжается).
CheckPos
. Проверяет наличие "вражеского" короля. Передаваемые параметры координаты короля (x, y).
Analizshod
. Анализирует возможные ходы короля, находящегося под шахом.
CopyPos
. Копирует исходный массив, расстановки фигур.
ReadFile
. Считывает координаты расстановки фигур в массив.
WriteFile
. Записывает координаты фигур в массив.
При запуске приложения открывается его рабочее окно (рисунок 1).
Рисунок 1 - Окно приложения
Окно приложения содержит:
Кнопки редактирования (Рисунок 2): расставить заново - очистка шахматной доски, удалить фигуру - удаляет фигуру выделенную в синей рамке на доске.
Рисунок 2 - Кнопки редактирования
Кнопка Оценка ситуации (Рисунок 3) - анализирует ситуацию на доске и выводит результат.
Рисунок 3 - Кнопка оценка ситуации
Кнопки расстановки фигур (Рисунок 4) - расставляют фигуры в указанные позиции на доске.
Рисунок 4 - Кнопки расстановки фигур
Главное меню (рисунок 5).
Рисунок 5 - Главное меню
Меню файл.
Выполняет следующие функции:
Загрузить. Открывает файл, считывает координаты фигур и рисует их на доске.
Сохранить программу. Сохраняет в файл координаты фигур.
Выход. Завершает работу приложения.
Меню о программе.
Информация о разработчике.
Для оценки ситуации на шахматной доске вначале необходимо расставить фигуры, используя соответствующие фигурам кнопки на панели, затем нажать кнопку оценка ситуации.
Для записи положения фигур в файл необходимо выбрать Файл ® Сохранить как. В открывшемся диалоговом окне написать название файла, выбрать путь его сохранения и нажать кнопку "Сохранить".
Для воспроизведения исполняемой программы необходимо выбрать Файл ® Открыть. В открывшемся диалоговом окне выбрать файл с программой и нажать кнопку "Открыть". После этого начнет выполняться программа.
Для очистки шахматной доски от фигур необходимо нажать кнопку расставить заново.
Для удаления единичной фигуры нажать кнопку удалить фигуру.
|