Хочу сделать "крестики-нолики" по сети (+socket.io). Схема: зашел - создал комнату - играешь с другим человеком.
app.get("/randomlink", function())
, при заходе на этот адрес двух человек начинается игра. Корректно ли так делать?Если по этой ссылке зайдет третий человек (если двое уже играют), ему выдаст ошибку. Т.е. когда на /randomlink заходит игрок, сервер добавляет его в список подключенных:
let players = [];
io.on("connection", function(socket){
players.push(socket);
});
Но ведь комнат может быть много, а массив один на сервер. Как это сделать (как\где сохранять количество подключенных к определенной комнате)?
Также не понимаю, как\где сохранять промежуточный процесс игры (например, есть массив data
, в котором указаны кто\где поставил x
или o
, чтобы генерировать поле и заполнять его). Без БД не обойтись?
Если планируется не очень большое количество комнат, то можно ограничиться хранением данных в массиве, но лучше все перенести в БД.
По хорошему, здесь надо делать несколько таблиц: таблица со списком комнат (там храним данные по участникам), таблица с состоянием игры (при подключении к комнате вытаскиваем из нее текущее состояние игры).
То же решение подойдет и для массивов (в одном храним список комнат с id участников, во втором - состояния игр с привязкой к game_id).
Решение с /randomlink более чем жизнеспособно, но введите на всякий случай проверку на уникальность значения (если сгенерированный /randomlink уже есть в массиве или БД с играми, то генерируем его повторно, пока не станет уникальным).
При заходе пользователя на /randomlink отслеживаем количество подключенных игроков, если уже есть 2, то выдаем ошибку или перекидываем на другой /randomlink (в зависимости от логики приложения).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пытаюсь сделать маску для imageНо маска задевает не 2 последних слоя (как нужно), а все слои в контексте
ЗдравствуйтеИзучаю Js и остановился на одном моменте не могу понять об численном преобразовании объектов