• Как реализовать простую игру-вопросник в тг боте на js?

    szQocks
    @szQocks
    Проблема в условиях, в том что в каждом условии идёт вызов функции operatorRandom
    предположим что в первом условии функция operatorRandom вернет минус, а во втором плюс, тогда выходит что не одно из условий не отрабатывает, и в operation остаётся пустая строка, и дальнейшая ошибка из-за неё

    плюс так же вижу жесткую ошибку в будущем, это вызов setTimeout - тут нужен setInterval который бы отслеживал дату начала игры пользователей каждый N миллисекунд, то есть на бэке - должен крутиться игровой цикл бесконечный который бы отслеживал игры и вещал игрокам об их статусах что-то типа setInterval(cb, 50);

    по факту для одного юзера - setTimeout будет работать идеально, но юзеров скорее всего же будет не 1, да даже для 10 юзеров, просто эти таймауты будут копиться и всё сломается рано или поздно
    Ответ написан
    6 комментариев
  • Как реализовать простую игру-вопросник в тг боте на js?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    я пишу бот на баше, там делаю просто.
    Храню во внешнем источнике (sql, например), информацию об играх.

    Если в текущем чате запущена игра, в sql будет timestamp запуска, chatid , правильный ответ и возможно вопрос, параллельно запущен тред с таймаутом, который завершит игру.

    Если игра запущена, все сообщения пользователей проверяются на наличие правильного ответа, и соответственно помечаются.
    Ответ написан
    Комментировать
  • Почему state нужно передавать компонентам через connect?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Вообще говоря, connect теперь безнадежно устарел и рекомендуется использовать хуки. В частности, useSelector позволяет прочитать данные и ещё и подписаться на их изменение. Причем, изменение не всего стейта, а только этого куска, который мы селектим. Старый добрый connect делал то же самое.

    Так же ты можешь затянуть весь стор (не стейт) с помощью useStore и в моменте посмотреть его текущий стейт. Но это без подписки на изменение.

    Сам по себе стор хранится в провайдере контекста, и к нему обращаются все упомянутые хуки. По факту - тот же DI, что с архитектурной т.з. лучше импорта.

    Но надо заметить, что это уже не redux, а react-redux, т.е. отдельный пакет, хоть и официальный. Ты можешь чисто ради прикола и в учебных целях поюзать redux напрямую - например, для постижения хука useSyncExternalStore.
    Ответ написан
    Комментировать
  • Почему state нужно передавать компонентам через connect?

    @teenager_python
    state в Redux является центральным хранилищем данных и представляет собой объект, который содержит все состояние приложения.

    При использовании React-Redux библиотеки, компоненты получают доступ к state через функцию connect. Функция connect обеспечивает связь между компонентами и хранилищем Redux. Она предоставляет компоненту доступ к определенным частям хранилища через props.

    Когда компонент обновляется, функция connect автоматически обновляет данные в state, если это необходимо. Также функция connect обеспечивает оптимизацию и ускорение производительности компонентов путем уменьшения количества перерисовок.

    Импортирование store напрямую в компонент нарушает концепцию Redux, так как это обходит связь между хранилищем и компонентами, которую обеспечивает функция connect. Это может привести к ошибкам и неожиданным поведениям приложения. Поэтому, для правильного использования Redux в React-Redux, рекомендуется передавать state компонентам через функцию connect.
    Ответ написан
    Комментировать
  • Как добавить отправку счета на оплату в телеграм бота на node-telegram-bot-api?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    RTFM.
    telegramBot.sendInvoice(
      chatId,
      title,
      description,
      payload,
      providerToken,
      currency,
      prices,
      [options]
    )

    'get_access' - это у вас какой аргумент функции?
    Ответ написан
    3 комментария