10秒ピッタリで止めろ!

スタートを押して、頭の中で10秒。
そう思ったところで、止める。

遊 ぶ

始める前の画面。オレンジの七segment表示は消えていて、下に大きなスタートの札がある
始める前
数えている最中の画面。表示は真っ暗で、数字も目盛りも出ていない
数えているあいだ。何も動きません
3回終わった画面。10.134 と表示され、1回あたりの誤差 0.084 秒と3回ぶんの記録が並んでいる
3回そろったところ
0回で勝負
0つのモード
0分の1秒まで

どんな遊びか

画面には数字も、目盛りも、音も出ません。押してから止めるまでのあいだ、何ひとつ動きません。頼れるのは自分の中の秒針だけです。

3回止めて、目標との誤差を見ます。0.5 秒ずれる人もいれば、0.02 秒で止める人もいます。合計ではなく「1回あたり」で出しているのは、そのほうが腕前が直感的にわかるからです。あわせて「3回のうちベスト1回」も残しています。平均が実力で、ベスト1回はその日の運です。

三つのモード

10秒・ヒントなし

基本の遊び方。3回勝負です。手がかりは何もありません。

10秒・ヒントあり

最初の3秒だけ時計が出ます。そこで自分の刻みを合わせて、残りは自力で。3秒を越えた瞬間、表示は完全に消えます。

100秒・一発勝負

1回きり。100秒を数えるあいだ、やることは何もありません。途中で画面を離れる(タブを切り替える、画面が消える)と、その勝負は無効になります。

なぜ小数3桁までなのか

ブラウザの時計は、端末によって粗さが違います。performance.now() は Spectre 対策で精度がわざと落としてあり、Chrome は 5µs 刻み、Safari と Firefox は 1ms 刻みです。

6桁まで出すと、時計の粗い端末ほど末尾が 000 になって有利になります。「ピッタリ」を競う遊びで、端末の当たり外れが順位を決めてしまう。だから3桁で切って、全部の端末を同じ土俵に揃えています。

動くものを置かない

作っている途中、表示のどこかに点滅するランプを置いたことがあります。すると、それがメトロノーム代わりになってしまいました。1Hz で光るものが視界にあれば、人はそれに合わせて数えられる。自力で数える遊びが、丸ごと消えます。

いまは、計測中に周期的に動くものを一切置いていません。ボタンの脈打ちも、点滅も、アニメーションも。押した瞬間から止めるまで、画面は完全に静止しています。

作りについて

全体が HTML ファイル一枚です。外部の library はゼロ。数字は七segmentの形を SVG の多角形で自前に描いているので、書体にも依存しません。効果音も音声ファイルを持たず、その場で作っています。

止めた時刻は pointerdownevent.timeStamp で取っています。click を待つと余計な遅れが乗るためです。記録は端末の中にモードごとに残ります。

遊 ぶ