#discord.js
#discord.js
Вопрос:
Я пытаюсь создать игру для расшифровки в discord.js! (вы можете получить представление об игре из сообщения, которое должно быть отправлено по каналу) Функция скремблирования работает нормально, но, похоже, у меня возникли проблемы с выбором случайной строки в файле. Я использую, у меня есть этот код:
const rl = require('readline-specific')
var started = 'true'
let randomline = Math.floor(Math.random() * 1525) 1;
rl.oneline('./words.txt', randomline, function(err, res) {
if (err) console.error(err)
console.log(res)
let correctword = res
message.channel.send('The word to guess is: "' res.shuffle() '". use " guess <yourguess>" if you think you know what it is!');
})
но, похоже, это не работает. Она не выдает никакого журнала ошибок и не выполняет никаких действий в чате или при повторном входе в журнал. Что я делаю не так?
Редактировать: кажется, что моя другая строка if(started === 'false')
{ которая является переменной false, если игра не запущена, и true, когда она запущена. Я не понимаю, потому что я установил для нее значение false с помощью моей команды reset. Что происходит?
Комментарии:
1. Я только предполагаю, что
rl.oneline
это не выполняется. Поставьтеconsole.log()
перед вызовом просто для двойной проверки.2. моя строка перед этим
if(started === 'false') {
не запускается, хотя у меня есть команда, которая устанавливает ее в это значение? почему это происходит?3. используйте
console.log(started)
после того, как для нее установлено значение false, в любом месте, где для нее установлено значение true ~~ даже если эта строка не должна выполняться ~~ и перед инструкцией if.4. привет… просто чтобы перепроверить … запускается переменная true или false или строка… вы проверяете строку
started === 'false'
, вы должны проверить логическое значениеstarted === false
Ответ №1:
После тестирования предоставленного вами кода, я предполагаю, что вы назначаете started
to "false"
в области, невидимой для предоставленного кода if(started === 'false')
. Мое решение состоит в том, чтобы объявить started
в начале вашего скрипта, а затем присвоить ему значения, например:
//Start of the script
var started = 'false';
...
// reset
started = 'false'
...
if(started === 'false'){
const rl = require('readline-specific')
var started = 'true'
let randomline = Math.floor(Math.random() * 1525) 1;
rl.oneline('./words.txt', randomline, function(err, res) {
if (err) console.error(err)
console.log(res)
let correctword = res
message.channel.send('The word to guess is: "' res.shuffle() '". use " guess <yourguess>" if you think you know what it is!');
})
}
Кроме того, что такое res.shuffle()
? Это String
модификация конструктора?
Если нет, пожалуйста, проверьте, что вы не ошиблись String.shuffle()
с shuffle()
.