Цей проект реалізує гру "Хрестики-нулики" на мові програмування C#. Гра дозволяє двом гравцям змагатися один проти одного, роблячи ходи по черзі на полі розміром 3x3. Гра завершується, коли один з гравців виграє або коли неможливо зробити хід (нічия). Після завершення гри є можливість почати нову гру.
Single Responsibility Principle (SRP): Кожен клас в програмі відповідає за одну конкретну відповідальність:
- Player зберігає інформацію про гравця.
- Board управляє станом і логікою гри на дошці.
- GameView відповідає за взаємодію з користувачем (введення і виведення).
- GameController керує логікою гри, координуючи взаємодію між Player, Board і GameView.
- Model: Моделі Player та Board представляють логіку гри і стан даних.
- View: GameView відповідає за взаємодію з користувачем, відображення дошки і отримання введення гравців.
- Controller: GameController об'єднує моделі та вигляд, керуючи процесом гри.
- Ініціалізація гри: Гравці вводять свої імена перед початком гри.
- Відображення ігрового поля: Після кожного ходу оновлюється ігрове поле.
- Ходи гравців: Гравці по черзі роблять ходи, вводячи номер комірки від 1 до 9.
- Перевірка правильності ходу: Програма перевіряє, чи введений хід є коректним (число від 1 до 9, і комірка не зайнята).
- Перемога/нічия: Після кожного ходу перевіряється умова перемоги або нічиї.
- Повтор гри: Після завершення гри гравці можуть обрати почати нову гру.
- Очищення консолі: Консоль очищається після кожного ходу для зручності перегляду.