Разработать программу для курсовой работы "Шахматные партии"
Функциональные требования
Добавление новой партии:
Пользователь должен иметь возможность вводить данные о партии (название, игроки, последовательность ходов, время ходов, комментарий, имя победителя).
Важная реализация: Проверка корректности ввода данных (например, валидация формата ходов, наличие победителя).
Использование удобных элементов управления (текстовые поля, списки, даты, etc.).
Изменение партии:
Пользователь должен иметь возможность изменять информацию о существующей партии (название, игроки, ходы, время, комментарий, победитель).
Отображение существующей партии в удобном формате.
Удаление партии:
Пользователь должен иметь возможность удалять ненужные партии из базы.
Поиск партии по названию:
Система должна поддерживать поиск партий по их названию.
Просмотр партий по имени игрока:
Система должна позволять просматривать все партии, в которых участвовал указанный игрок.
Отображение финального состояния партии:
При просмотре партии должна отображаться позиция фигур на доске после последнего хода.
Прокрутка партии на доске – походовой проход партии:
Система должна предоставлять возможность отображать шахматную доску и прокручивать ход за ходом.
Отображение фигур на доске должно соответствовать состоянию после каждого хода.
Важное замечание по шахматным ходам: Система должна корректно обрабатывать и отображать все корректные ходы, проверяя их валидность. Это особенно важно для правильного отображения финального состояния и последовательности ходов.
Управление данными:
Реализовать хранение данных о партиях в файлах или базу данных (SQL).
Предпочтительнее базу данных (SQL) для повышения масштабируемости и надежности хранения данных.
1. Технические требования
Язык программирования:C#
Платформа:Windows Forms
Фреймворк:.NET Framework или .NET 6 (или выше)
База данных (рекомендовано): SQL Server, PostgreSQL, SQLite. (Выбор базы данных согласуется с заказчиком)
Шахматный движок (возможный):Использовать сторонний шахматный движок для проверки валидности ходов. Встроенный алгоритм проверки валидности ходов значительно снизит сложность проекта.
2. Требования к дизайну
Простой и интуитивно понятный интерфейс пользователя.
Использование графических элементов для отображения шахматной доски и фигур.
Графическое представление хода за ходом, обеспечивающее возможность прокрутки и просмотра всей партии.
3. Архитектура приложения
Класс для представления шахматной партии.
Класс для хранения данных о партиях (например, в БД).
Класс для отображения шахматной доски.
Класс для обработки ходов.
Класс для работы с базой данных.
4. Критерии приемки
Приложение должно корректно обрабатывать все запросы пользователя.
Система должна сохранять все введённые данные о партиях корректно.
Приложение должно отображать шахматную доску и корректный ход за ходом.
5. Дополнительные требования
Реализовать возможность сохранения партий в формате PGN.
Реализовать возможность импорта партий из формата PGN.
Реализовать поиск по комментариям.
Реализовать систему сортировки партий.
6. Ожидаемый результат
Функциональное приложение для хранения, просмотра и анализа шахматных партий, удовлетворяющее всем описанным в данном ТЗ требованиям.
Определить выбор базы данных (SQL Server, PostgreSQL или SQLite).
Подробно разработать UML диаграммы классов и другие архитектурные документы.
Подробно определить шаги реализации функционала.