@Retr0_0

Как сделать остановку функции?

В общем, я сделал мини-игру для телеграм бота, которая отправляет примеры и мне нужно сделать так, чтобы при нажатии на кнопку закончить игра прекращалась. Библиотека node-telegram-bot-api
let questInterval;
        inGame = 1;
        let answ;
        let count;
        let won_games;

        db.serialize(() => {
            if(regInDb === 0){
                db.run('CREATE TABLE IF NOT EXISTS Game_count(id INT, count INT, won_games INT)')
                count = 0;
                won_games = 0;
                db.run('INSERT INTO Game_count VALUES(?, ?, ?)', [id, count, won_games])
                regInDb = 1;
            }
        
            db.get('SELECT count, won_games FROM Game_count WHERE id = ?', [id], (err, row) => {
                if(err){
                    console.log(err)
                }
                
                count = row.count;
                won_games = row.won_games;
                
            });
        })
            

        bot.on('message', (msg) => {
            if(inGame){
                if(msg.text === answ){
                    bot.sendMessage(chatId, 'Верно')
                    count++
                    db.run('UPDATE Game_count SET count = ? WHERE id = ?', [count, id])
                }else if(msg.text === 'Закончить'){
                    inGame = 0;
                    clearInterval(questInterval)
                    bot.sendMessage(chatId, 'Вы закончили игру!', {
                        reply_markup: {
                            keyboard: [['Играть'], ['Мой профиль'], ['Подробнее '], ['Победители']],
                            resize_keyboard: true
                        }   
                    })

                }
            }
            
        })

        
        function game(){
                            
            bot.sendMessage(chatId, 'Сейчас начнется игра.\nТебе будут заданы различные вопросы,\nна которые ты должен ответить в течение 10 секунд.\nЗа каждый правильный ответ - 1 балл!\nУдачи!!!', {
                reply_markup: {
                    keyboard: [['Закончить']],
                    resize_keyboard: true
                }
            })

            function randomNum(){
                let num = Math.floor(Math.random() * 10 + 1)
                return num
            }

            
            
            function Quest(){
                let firstSum = randomNum()
                let secondSum = randomNum()
                let sum = firstSum + secondSum
                answ = `${sum}`
                let quest = `${firstSum} + ${secondSum}`;  
                return quest
            }

            

            function gameQuest(){
                bot.sendMessage(chatId, Quest())
                
            }

            questInterval = setInterval(gameQuest, 5000)

            

        }

        game()
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы