すだちキャンパス

すだちキャンパス

やってみたこと、学んだことなどのメモ。

GAS (Google Apps Script) でワードウルフ用LINE bot を作ってみた

こんにちは。
GASを利用して、グループラインでワードウルフができるLINE bot を作ってみました。

ワードウルフとは

ワードウルフとは、パーティーゲームの一種です。
まず、ゲームマスター(進行役)によりお題が二種類用意されます。このお題は多数派用と少数派用の二つがあり、共通点を持ったものになります。
次に、どちらかのお題がゲームマスターにより参加者に知らされます。この時点で、参加者は自分が多数派なのか少数派なのかは知らされません。
そしてゲームを開始したら自分がもらったお題について話し合いを始めます。ここで、自分が多数派なのか少数派なのかを推理して上手く発言していきます。
最終的に、多数派だと思った人々が少数派を当てたら勝ちです。逆に、少数派の人は当てられないように発言しなければなりませんが、当てられても多数派のお題を当てれば勝利となります。

仕組み

  1. 「ワードウルフ開始」という言葉に反応してCount関数が動きます。Count関数はYes/Noボタン付きの参加するかどうかを問うメッセージを送信します。
  2. メッセージのYesボタンを押すと、スプレッドシート上の特定のセルでカウントが始まります。また、同時に、押した人のデータも取得してスプレッドシートに格納します。カウント数が一定値に達すると、その時の人数で始めるかどうかを問うYes/Noメッセージが送信されます。
  3. 始める(Yes)を押すと、sendMessage関数が呼び出され、ランダムに少数派と多数派が決定され、個人チャットで送信されます。
  4. ワードウルフ終了というメッセージを送信すると、終わりにするかどうかを問うメッセージが送信されます。

コードの説明

基本的に、こちらから送られるメッセージ(ボタンを押した時に自動的に送信されるメッセージも含む)に反応して

(event.message.text).match(/対応する文字列/)

を用いてif文分岐で関数を呼び出しています。
ボタンを押した時の処理は、処理を行って欲しいボタン(Yesなど)のタイプを"type":"postback"にしておいて、if("postback" in event)の中で処理しています。

コード

一応載せておきますが、投票機能がまだ完成しておらず一部動きません。(一旦完成させて動いていたのに、改造しようとしてたらいつの間にか動かなくなっていました・・・。完全にミスです。動いた時点で別に保存しておくべきでした。)
もし参考にされる方がいらっしゃいましたら、部分部分を参考にする形でご利用ください。

できたもの

こんな感じで動きました。
f:id:sweetgohan:20181213204153j:plain
f:id:sweetgohan:20181213204207j:plain

改良点

大人数で実際にやろうとすると、カウントがバグって正直使い物になりませんでした・・・。
文字列で判定して分岐しているのが悪い可能性が高いので、いつか改良したいです。
投票機能と結果判定機能も実装したいですね・・・。
りんな(Microsoft)のすごさを思い知りました。