0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「絶対に起きられる目覚まし時計」を強制終了させる

0
Posted at

絶対に起きられる目覚まし時計

ラムダ技術部さんが2年前に「絶対に起きられる目覚まし時計」1
という、問題を解かないと止められない目覚まし時計を作っていたので、
これをプログラムで強行突破する方法を考えてみました。

ソースコードを見る

なんとGitHubでソースコードが公開されていました!

Next.jsは得意なほうなので観察してみます

仕様

  • /で停止ボタンを押す
  • /integralに遷移
  • 決定ボタンを押す
  • 答えがあっている場合は/wakeupに移動

この仕様だけを見ると「/wakeupに行くだけで良くない?」となりますが
目覚まし時計(本物)が鳴り続けるのでお勧めしません。
代わりに、遷移と目覚まし時計のAPIを適切に操作してくれるプログラムが必要です。

拡張機能を書いてみる

クライアント側で強制的に問題を解いたことにするには、
ブラウザの拡張機能を作るのが最適だと思います。

integral.tsxの31~33行目あたりを見ると、
答えが合っているかを判定して、合っていたらチャイムを停止し正解音を再生し、
APIにコマンド1を送信し、/wakeupに遷移していることがわかります。
では、コードを書いていきましょう!

本体

感想

コードから挙動を観察することができ、要素を追加することで少しJavascriptの勉強に
なったのでよかったと思います。


最後まで読んでいただきありがとうございます!

  1. https://www.youtube.com/watch?v=SaouHglJTD0

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?