2017-06-25 10 views
-1

私はNode.jsを使用して数日間、私のサーバーのDiscordボットに取り組んできました。私はいくつかのコードをMagic 8ボールからチュートリアルのモデルの後にJSに変換して関数に実装するようにしています(乱数と大文字と小文字の切り替えのみ)。JSケーススイッチはどのようにフォーマットされていますか?

これは、C#プロジェクトからです:

switch (random.Next(4)) 
               { 
               case 0: 
                Console.WriteLine("YES"); 
                speechSynthesizer.Speak("Yes"); 
                break; 
               case 1: 
                Console.WriteLine("NO"); 
                speechSynthesizer.Speak("No"); 
                break; 
               case 2: 
                Console.WriteLine("HELL NO"); 
                speechSynthesizer.Speak("Hell no"); 
                break; 
               case 3: 
                speechSynthesizer.Speak("Hell yes"); 
                Console.WriteLine("HELL YES"); 
                break; 
               } 

、これは私が実装しようとしているものの中にある:

switch(Math.random.Next(4)) { 
      case 0: 
      msg.channel.send('Yes'); 
      break; 
      case 1: 
      msg.channel.send('No'); 
      break; 
      case 2: 
      msg.channel.send('Hell yes!'); 
      break; 
      case 3: 
      msg.channel.send('Hell No!'); 
      break; 
     } 

私は基本的にあなたが「マジックを送ることができる部分を追加しようとしています8 Ball "を返し、Yes/No/Hell Yes/Hellを返します。

編集: 私はコメントのアドバイスに従い、それぞれのinstanc e。私が今受け取るエラーは、数学は定義されていないということです。別の記事で数学を数学に切り替えることを提案しました。次は関数ではありません。

+0

'case'は小文字である必要があります。https://developer.mozilla.org/en/docs/Web/JavaScript/参照/ステートメント/スイッチ – Xotic750

+0

そしてそれはどこに定義されていますか? – zerkms

答えて

0

あなたの問題がスイッチで使用するランダムなintを生成している場合は、最初に擬似乱数intを生成する方法を知る必要があります。

Math.randomだから、あなたの最高を掛け、その後、床が、それは整数にそれを回すために、その値を取る必要があります[0、1)

の範囲内のフロートを生成します。

Math.floor(Math.random() * max)

あなたの最終的なコードは次のようになります。

switch(Math.floor(Math.random() * 4))) { // 4 is maximum n of options 
     case 0: 
      msg.channel.send('Yes'); 
      break; 
     case 1: 
      msg.channel.send('No'); 
      break; 
     case 2: 
      msg.channel.send('Hell yes!'); 
      break; 
     case 3: 
      msg.channel.send('Hell No!'); 
      break; 
    } 
関連する問題