Как заставить бота произнести другой ответ, если на кубике выпало 20 и 1? - PullRequest
0 голосов
/ 02 августа 2020

Пример:

Результат 1 = Он отвечает: Результат 1, в следующий раз повезет больше!

Результат 20 = Он отвечает: Результат 20, поздравляем!

Код, который сейчас код:

const Discord = require('discord.js');

module.exports.run = async (client, message, args) => {
    var response = [Math.floor(Math.random() * ((20 - 1) + 1) + 1)];

   message.channel.send("The result is " + response + "!").then().catch(console.error);  

   if (response === 20) {
   message.channel.send("The result is " + response + ", congratulations!").then().catch(console.error);
   }
   if (response === 1) {
   message.channel.send("The result is " + response + ", luckier next time!").then().catch(console.error);
}
}

Я пробовал, но он только что ответил "(" Результат: "+ response +"! ")" ...

Ответы [ 2 ]

2 голосов
/ 02 августа 2020

Как упоминалось ранее, вы неправильно назначали случайное значение. Вы также можете создать объект ответов, устраняя необходимость в нескольких операторах if.

const Discord = require('discord.js');

module.exports.run = async (client, message, args) => {
    var result = Math.floor(Math.random() * ((20 - 1) + 1) + 1);
    
    let response = {
       1:  ", luckier next time!",
       2:  ...
       .
       .
       .
       19: ...
       20: ", congratulations!"
    }

    message.channel.send("The result is " + result + response[result]).then().catch(console.error);  

   }
}
2 голосов
/ 02 августа 2020

Похоже, вы установили свою переменную response в массив, но вы строго проверяете его на целое число, используя ===.

Попробуйте удалить квадратные скобки вокруг вашего оператора:

var response = Math.floor(Math.random() * ((20 - 1) + 1) + 1);
...