ルービック・クロックに関しては、Wikipedia を参照してほしい。 私は単に、この動きを JavaScript で実装したかっただけである。
ルービッククロックは、単一時計を 18 個(うち表9個、裏9個)、ダイヤルを 4 個、ボタンを 4 個持つ。 4 個のボタンがそれぞれ表に出ているか、裏に出ているかによって連動する時計が異なる。 この図では、チェックが入っていないときに表に出ている状態、 チェックが入っているときは裏に出ている(表から押し込まれた)状態を表す。
結果は必ず左オペランドの被除数(割られる数)と同じ符号になる。つまり、 -3 % 12 = -3 時計の計算では、「現在 3 時で、今から 6 時間戻すと何時か」 という計算をする。このとき、12 時間表記をしているが (3 - 6) % 12 = -3 となるが、-3 時という表現はできない。したがって、 内部の時刻が0以下になったときは 12 を加えて 9 時という言い方をしている。
まりんきょ学問所 > JavaScript 手習い > ルービック・クロック