Скажи что ты проверяешь))
Логика на фронте - вступил в игру, отправил свой вариант. Далее, начинаю раз в какое-то время спрашивать о результате, если его нет (а его нет, если второй игрок не дал ответ), вернётся ошибка и опрашиваешь повторно бэк до результата. Тут будет твой "цикл", только вероятнее это будет onSuccess и onFail
Я только сейчас понял, что не сказал, что игра идет до двух побед, это важно 🤣.
В это время на бэке:
Создается объект Игра и объект Ход. Объект Игра содержит ссылки на игроков, флаг играИдет, время начала игры, пустое время конца игры и лист Ходов содержащий первый ход. Ход содержит айди игры, время окончания хода и пустые фигуры игроков.
Ходы кладутся в лист и отдельный поток проверяет, не закончились ли они, сравнивая время конца хода и
LocalDateTime.now(). Если закончились, проверяется не закончилась ли игра. Если закончилась то посылаю один результат, если нет создаю новый ход и посылаю другой результат.
Игрок 1 прислал свою фигуру. Я проверяю на достоверность всю инфу, не закончился ли ход и добавляю эту инфу в текущий ход игры (последний в листе в объекте Игра).
Что-то типа такого...