質問: Discode.jsを用いたDiscodeのbot制作についての質問です。現在 サイコロの個数と目の数を受け取ってそれに応じて結果を返すbotの制作行っています。(2 10なら10面ダイス2個の値を合計した結果)以下のように6面1個な
回答: Discord.js も Discord の bot も触った経験がないので、message.content が投稿内容、message.reply() に bot からの応答を入れると雑に解釈しての回答になりますが...... (間違っていたらごめんなさい) 仮に投稿文に「ダイス 2d10」や「dice 3d6」が含まれる場合に応答させたいならば message.content.match(/(?:ダイス|dice)\s+(\d+)d(\d+)/); で ["ダイス 2d6", "2", "10"] や ["dice 3d6", "3", "6"] という配列が得られるので、2, 3 番目の要素を dd (個数), ds (面数) とか適当な変数に受け取って、1 + Math.floor(Math.random() * ds) を dd 分ループして合計を取る変数に加算していく形でどうでしょう。 const regexpResult = message.content.match(/(?:ダイス|dice)\s+(\d+)d(\d+)/); if (regexpResult) { let [, dd, ds] = regexpResult, arr = 0; ds |= 0; while (dd--) arr += 1 + Math.floor(Math.random() * ds); message.reply(arr); }---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------