В общем, я сделал мини-игру для телеграм бота, которая отправляет примеры и мне нужно сделать так, чтобы при нажатии на кнопку закончить игра прекращалась. Библиотека 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()