jaoafa / Javajaotan2

👧 jao Minecraft Server Official Discord Bot v2
Other
2 stars 2 forks source link

怪文書翻訳クイズ #406

Open kohonayoshi opened 1 year ago

kohonayoshi commented 1 year ago

内容

/tochaos の逆翻訳ゲームみたいなイメージです。 お題主は「お題(答え)となる文章」を入力します。この文章は伏せられて ja→rand→rand→rand→ja→rand→rand→rand→ja→rand→rand→rand→ja のような形で、3回ランダムな言語に翻訳された後日本語に戻る、を3回繰り返して原型が無くなった怪文書がチャットに出力されます。この内容を元に、もとの怪文書の意味を当てるゲームです。 白旗リアクションを誰かが付けると、元の文章が逆翻訳されていき(実際は翻訳結果が配列にぶっこまれてて、それを逆順で出力する)、最終的に何だったかがわかるようになるイメージです。

新機能・新コマンドについて、理由も併せて明確・簡潔に説明してください(以下に追記してください) コマンドの場合、コマンド名(例: /dt)や引数(例: /dt <MarkerName>)も併せて記載して頂けると非常に有難いです

/tochaosja お題(答え)となる文章

book000 commented 1 year ago

いくつか検討すべき点がありそうです。根本的にこの機能を実装して利用するユーザーがいるかどうかについては触れないでおきます(この手のゲーム機能はあまり使われる傾向にない気がするけど)

3回ランダムな言語に翻訳された後日本語に戻る、を3回繰り返して

計9回(サンプルでは11回?)も翻訳する点はなかなか気になります。Google App Script が不安定だったりもしますし(jaoafa/jao-Minecraft-Server#136)、短時間で連続してこれだけのリクエストを出すこと自体がGoogle側からとして問題視されないかどうかちょっと不安です。あと最終的な結果の取得にも相応の時間がかかりそうです。

お題主は「お題(答え)となる文章」を入力します。この文章は伏せられて

少なくとも普通のメッセージコマンド(/toja のようにテキストメッセージを送ってコマンドとするような)ではメッセージ内容を隠すことはできません。したがって、別の方法を考える必要があります。 唯一、ある程度簡単な方法で実装できるとするならスラッシュコマンドで持続的な返信をせずに(ephemeralな)応答し、チャンネルにメッセージを投げ返すくらいでしょうか。


それ以外、仕様というか技術的な面としてこれらの翻訳結果をどう持っておくかも悩ましいです。 SQLiteでJavajaotan2が再起動しても保持するデータとするか、再起動後は消えるが実装は楽なメモリ上で変数として持っておくか、うーんって感じです。 まあ面倒ではありますがSQLiteで管理したほうが再起動をユーザーが関知する必要ないのでUX的にもいいでしょうね…