ルービック・クロック

作成日 : 2011-03-21
最終更新日 :

ルービック・クロックとは

ルービック・クロックに関しては、Wikipedia を参照してほしい。 私は単に、この動きを JavaScript で実装したかっただけである。

ルービッククロックの動作

ルービッククロックは、単一時計を 18 個(うち表9個、裏9個)、ダイヤルを 4 個、ボタンを 4 個持つ。 4 個のボタンがそれぞれ表に出ているか、裏に出ているかによって連動する時計が異なる。 この図では、チェックが入っていないときに表に出ている状態、 チェックが入っているときは裏に出ている(表から押し込まれた)状態を表す。

ダイヤル 1 表面 ダイヤル 2
ボタン1 ボタン2
ボタン3 ボタン4
ダイヤル 3 ダイヤル 4
裏面

ルービッククロックの実装と JavaScript の仕様

剰余演算子 % の挙動

結果は必ず左オペランドの被除数(割られる数)と同じ符号になる。つまり、 -3 % 12 = -3 時計の計算では、「現在 3 時で、今から 6 時間戻すと何時か」 という計算をする。このとき、12 時間表記をしているが (3 - 6) % 12 = -3 となるが、-3 時という表現はできない。したがって、 内部の時刻が0以下になったときは 12 を加えて 9 時という言い方をしている。

まりんきょ学問所JavaScript 手習い > ルービック・クロック


MARUYAMA Satosi