A multiplayer tic-tac-toe game.
Этот проект представляет собой серверное приложение для игры Крестики-Нолики, написанное на C++ с использованием PostgreSQL для управления данными пользователей и игровых сессий.
Сервер обрабатывает запросы клиентов, предоставляя функциональность для регистрации и авторизации пользователей, создания и присоединения к игровым лобби, а также управления игровыми сессиями. Приложение использует многопоточность для обработки нескольких клиентов одновременно.
- Регистрация пользователей: Новые пользователи могут зарегистрироваться, введя имя пользователя и пароль.
- Авторизация пользователей: Существующие пользователи могут войти в систему, используя свои учетные данные.
- Создание лобби: Пользователи могут создать игровое лобби с заданным именем и паролем.
- Присоединение к лобби: Пользователи могут присоединяться к существующим лобби, вводя имя и пароль.
- Обработка запросов: Сервер обрабатывает запросы клиентов, используя многопоточность для обеспечения одновременной работы с несколькими клиентами.
-
Убедитесь, что у вас установлены следующие зависимости:
- make
- g++
- docker
- libpqxx-dev
-
Клонируйте репозиторий:
git clone https://github.com/Wammero/Tictactoe.git cd Tictactoe make cd build (в других терминалах) client/client --connect 127.0.0.1:2020
Для тестирования работы сервера и клиента:
- Напишите make в главной директории
- Запустите клиент: ./client/client --connect 127.0.0.1:2020
- Пройдите через регистрацию или авторизацию, создайте или присоединитесь к лобби.
- Поддержка нескольких партий без переподключения (играть заново с тем же игроком)
- Поддержка нескольких игровых сессий одновременно (несколько пар игроков)
- Регистрация игроков и ведение статистики
- Всё находится в одном main.cpp файле, что затрудняет чтение.
- Использование базы данных для session и lobbies, когда можно всё хранить в кэше.
- Нельзя сразу же сыграть с другим пользователем, приходится либо снова играть с тем же, либо перезаходить.
- Нет возможности сдаться, нет чата, нет возможности настроить режим игры (NxM), нет бота, нет возможности подключиться наблюдателем
- Возможно сначала не создалась бд, пробуйте запустить снова (make)
- не запускается проект: sudo service postgresql stop
- make - для запуска проекта
- make clean - для чистки build и бд