絶対に起きられる目覚まし時計
ラムダ技術部さんが2年前に「絶対に起きられる目覚まし時計」1
という、問題を解かないと止められない目覚まし時計を作っていたので、
これをプログラムで強行突破する方法を考えてみました。
ソースコードを見る
なんとGitHubでソースコードが公開されていました!
Next.jsは得意なほうなので観察してみます
仕様
-
/で停止ボタンを押す -
/integralに遷移 - 決定ボタンを押す
- 答えがあっている場合は
/wakeupに移動
この仕様だけを見ると「/wakeupに行くだけで良くない?」となりますが
目覚まし時計(本物)が鳴り続けるのでお勧めしません。
代わりに、遷移と目覚まし時計のAPIを適切に操作してくれるプログラムが必要です。
拡張機能を書いてみる
クライアント側で強制的に問題を解いたことにするには、
ブラウザの拡張機能を作るのが最適だと思います。
integral.tsxの31~33行目あたりを見ると、
答えが合っているかを判定して、合っていたらチャイムを停止し正解音を再生し、
APIにコマンド1を送信し、/wakeupに遷移していることがわかります。
では、コードを書いていきましょう!
本体
感想
コードから挙動を観察することができ、要素を追加することで少しJavascriptの勉強に
なったのでよかったと思います。
最後まで読んでいただきありがとうございます!