· 

discordで本田とじゃんけんがしたい

どうもオタクです。

突然ですが自分はオタクなのですこ~~~しだけプログラムが作れます。

すごくたくさん調べて頑張ればマインスイーパが作れるかもしれない程度です。

いや作れないに違いありませんアホなので、雑魚です。

 

c言語を少し取得したので、最近はjavascliptも覚えました。

それで、調べてみたらdiscordのbotはjavascliptでも書けるらしいじゃないですか。

ランダムな数値とif文さえかければしょうもないbotがいくらでも作れそうです。

というわけでこちらのサイトを参考にbotを作ってみました。

 

<参考サイト>

https://note.com/bami55/n/ncc3a68652697

https://scrapbox.io/discordjs-japan/%E3%82%84%E3%82%8A%E3%81%9F%E3%81%84%E3%81%93%E3%81%A8%E9%80%86%E5%BC%95%E3%81%8D%E9%9B%86

 

私が説明することは何も無いです。1つ目のサイトを見ながら真似して動かしてみて、望みの動作を一つ一つ分解してから2つ目のサイトで探してくれば動きます。

実際できたものがこんな感じ

これはコードです。

有識者に見られたら、本当に初心者な上愚直で汚いコードを書く雑魚だと思われそうですが

許していただきたい。

メソッド?を使おうとしたらうまく動かなかったので、改良は追々しようと思ったのです。

とりあえず動けばいいんですよ

一応コードの解説を

 

if(message.content==='!honda')

 

 もし!hondaが入力されて

 

if(rndm==1){

  message.channel.send(honda[3]);

}

 

rndmに代入されたランダムな1-100までの整数が1ならば

入力を受け付けたチャンネルでhonda[3]を返す

honda[3]には 'YOU WIN!!!!\nやるやん。\n明日は俺にリベンジさせて。\nでは、どうぞ。',

が入っています。

つまり1から100までの値を取るランダムな数がもし1ならば本田に勝つってことです。

で、更に下に

 

if(rndm==1){

 let aaa={ files: ["-------------------------.png"] };

  message.channel.send(aaa);

 }

 

この部分は試行錯誤の名残をそのまま残してしまってますね。多分これ

  message.channel.send( files: ["-------------------------.png"] );

で動きます。

えっとこれは、もしrndmが1(勝ったとき)ならば指定の画像を表示するってコードです。

シンプルですね。

でも最初見ていたサイトには  message.replyしかのっておらず、メンションさせない方法がわからなかったりとか、rndmIntメソッドを用意したらうまく動作せず困ったり、配列内に画像表示のコードをねじ込もうとしたらうまく行かず、泣く泣く分割したり

結構しょうもない所でぶち当たって妥協した点がいくつかあります。

 

とりあえず結果的に本田とじゃんけんができたので良かったです。

おわり