Проект представляет собой интерактивную шахматную игру, разработанную на языке TypeScript с использованием фреймворка React. В проекте используются различные паттерны проектирования, такие как Strategy, Singleton, Factory, Observer, Adapter и Decorator, для обеспечения гибкости, расширяемости и повторного использования кода.
- Язык программирования: TypeScript
- Фреймворк: React с использованием TypeScript
Strategy
паттерн используется для определения различных стратегий движения фигур в шахматной игре. Каждая фигура может иметь свою собственную стратегию движения, что обеспечивает гибкость в изменении поведения фигур.
Singleton
паттерн применяется для реализации таймера в игре. Это обеспечивает единственный экземпляр таймера, который может быть доступен из любой части приложения.
Factory
паттерн используется для создания фигур в шахматной игре. Фабрика отвечает за создание конкретных экземпляров фигур на основе запросов от игроков.
Observer
паттерн применяется для реализации механизма наблюдения за ходами игроков. Каждый игрок может быть подписан на события и получать уведомления об изменениях очереди хода в игре.
Adapter
паттерн используется для конвертации времени из секунд в минуты при установке времени для таймера. Это обеспечивает удобный интерфейс для работы с временем в различных форматах.
Decorator
паттерн используется для добавления стилей текста игроков в шахматной игре. Например, игрок, который ходит, может быть выделен зеленым цветом, а игрок, который ждет, - желтым цветом.
-
/src: Содержит исходный код приложения.
- /Сomponents: React-компоненты, отвечающие за различные аспекты игры.
- /Models: Хранит реализации моделей и паттернов проектирования, используемых в проекте.
- App.tsx: Основной файл приложения.
- index.tsx: Точка входа в приложение
-
/public: Содержит статические файлы и основной HTML-файл.
- index.html: Основной HTML-файл, служащий точкой входа в приложение.
-
/node_modules: Содержит зависимости, установленные с помощью npm.
-
package.json: Конфигурационный файл, включающий метаданные проекта и зависимости
-
README.md: Файл с документацией по проекту.