Немного теории...
Ферзь (перс. ferzin - визирь, советник) — самая сильная шахматная фигура
В современных шахматах ферзь может перемещаться на любое число полей по вертикали, горизонтали и диагонали, объединяя возможности ладьи и слона (при условии, что на его пути нет фигур). Находясь на одном из центральных полей, ферзь может атаковать до 27 полей одновременно, в углу доски — до 21 поля.
Задача программы
Данная программа является модификацией программы "класс Queen", которая реализует концепцию поведения шахматной фигуры - "Ферзь".
Cкриншот работы программы
И так начнем!
При создании хотелось затронуть как можно больше тем в одном приложении. А именно: объективно - ориентированное программирование (использование классов), правильное использование const и static функций в классе, концепция модульности программы, реализация динамических структур данных - списков, работа с динамической памятью - создание конструкторов и деструкторов. Большое количество комментариев поможет разобраться в трудных участках кода.
Основные возможности программы:
- перемещение фигуры по шахматной доске;
- вывод текущей позиции фигуры;
- отображения всех ходов, на протяжении одного запуска приложения;
- возможность принудительного выхода из программы.
Немного о структуре
Программа содержит
- три модуля:
- модуль queen содержит объявление и определение класса задающего поведение шахматной фигуры;
- модуль log - класс, который хранит данные о всех ходах игрока, в качестве структуры данных использует двусвязный список;
- main - код главной части программы.
- одну надстройку:
- drawqueen - надстройка для модуля queen, которая реализует вывод текущей позиции ферзя в консольном режиме
Class queen
Данный class дает возможность перемещать фигуру по доске, и отслеживать некорректные данные введенные пользователем. C++ позволяет использовать функции-члены типа static и const, в данной программе приведены оба типа с комментариями. Также рассмотрена возможность передачи параметров формальным аргументам функции по ссылке.
На рисунке отображен результат работы функции:DrawQueen
Class Log - возможности
Log хранит полную информации о совершенных ходах. И при необходимости отображает его на экране.
Содержание архива:
- файл проекта
- main.cpp, queen.h, queen.cpp, drawqueen.h, drawqueen.cpp, log.h, log.cpp
- release\queen.exe
Проект разработан в: visual studio 2008