モジュール詳細:クリアランスコード

あなたは多くの保護を受けている。今、ストレスを感じていますか?

このマニュアルの内容は通常の手順のみを記述しており、上書きされる場合がある。

このモジュールは、円形に配置された0~9の10個のボタンと、ボタンの中央にあるディスプレーで構成されている。

モジュールの初期状態では、4つのボタンが点灯する。 点灯しているボタンは、文字が黒、ボタンが白になる。点灯していないボタンは、その逆となる。 一番上のボタンから時計回りに、点灯しているボタンの数字を使用して4桁の数字を作る。 1つ目の点灯したボタンが1桁目、2つ目の点灯したボタンが2桁目…のように数字を作る。

無視されないモジュールが1つ解除されると、ボタンの位置がランダムになり、点灯しているボタンはすべて消灯する。 記録した数字内の各数字について、新しい位置を特定する。 時計回りに移動しながら、初期位置と現在位置の距離を計算する。 その距離を各桁に加算する。 結果が9を超える場合、最下位桁を使用する。 その後、求めたコードを入力する。これが後の「最終コード」になる。 コードが正しい場合、ディスプレーの横のライトが緑色に点滅し、問題なくモジュールの解除を続行することができる。 コードが間違っている場合や、このモジュールがコードの入力を待機している間に他の無視されていないモジュールが解除された場合、ディスプレーの横のライトが赤色に点滅し、ミスが記録される。 この段階を完了させなければ、さらなるミスが記録される。

最初のコードを正しく入力すると、新しい4つのボタンが点灯する。 ステージ2とそれ以降の偶数ステージでは、距離は時計回りではなく反時計回りで数える必要がある。

そして、各桁に距離を足した後、そのステージで求めたコードの各桁から、1つ前のステージでの「最終コード」の各桁を減算する。これがこのステージでの「最終コード」になる。数字が負の数になった場合、10を足す。この手順をすべてのステージで繰り返す。なお、ステージ3とステージ4では、初期位置の数字を逆回りで作成する。以降は4ステージごとに(ステージ7, 8, 11, 12, ...)、この条件が適用される。

すべての無視されないモジュールが解除されるまで、これらの手順全体を繰り返す。最後にもう一度コードを正しく入力すると、モジュールは解除される。

このモジュールがミスを記録した場合、モジュールはそれぞれの数字のペアを色付きで点灯させ、一方はボタンがその色で塗りつぶされて黒文字になり、もう一方はその逆になる。色の付いたボタンが1つしかない場合、そのボタン自身とペアとなる。ある色で点灯するそれぞれのペアの数字は、2つの数字の間の距離に対応する。黒文字の数字がこのステージの4桁の数字に対応し、もう一方は初期配置の数字に対応する。 1つ前のステージが存在する場合は、1つ前のステージの「最終コード」が入力欄に表示される。コードは通常通り入力することができる。

『クリアランスコード』モジュールの設定変更について

このモジュールにはデフォルトで設定されている項目がいくつかある。用意されているオプションには、すべて先頭に「CC」という文字が追加されている。

  • DigitsDisplayed: 各ステージで表示される数字の個数。最低3、最高16まで設定できる。9より大きい数字はAから始まる英字で表示される。加算や減算を行った結果、その桁の数字が範囲外になってしまう場面がある場合、この数値を足し引きして、範囲内に収めるようにする。最大値もこの影響を受ける。
  • DigitsRequired: 各ステージで点灯する & 入力すべき数字の個数。最低2、最高N個まで設定できる。Nは表示される数字の個数である。
  • RequireLastStage: これが「false」の場合、コード取得に1つ前のステージを必要としなくなる。これにより、最初のステージ以降の各ステージにおける「最終コード」の計算が変わる。
  • StagesPerCodeOperSwap: RequireLastStageが無効の場合は、機能しない。このオプションで設定した数値をWとする。ステージ1完了後、 最初のW個のステージでは、距離計算後に得たコードから「最終コード」の各桁を減算する必要がある。その後のW個のステージでは、加算する必要があり、以降も繰り返す。 0にすると、減算処理のみになる。Wが0未満の場合、Wの絶対値が適用されるが、「最終コード」の各桁を加算する処理から交互に進める。
  • StagesPerSeqDirSwap: このオプションで設定した数値をXとする。最初のX個のステージでは、数字を得るために時計回りで進む。その後のX個のステージでは反時計回りで進み、以降も繰り返す。0にすると、強制的に時計回りで数字を取得するようになる。Xが0未満の場合、Xの絶対値が適用されるが、反時計回りから交互に進める。
  • StagesPerDistDirSwap: このオプションで設定した数値をYとする。最初のY個のステージでは、距離の取得を時計回りで実施する。その後のY個のステージでは反時計回りで実施し、以降も繰り返す。0にすると、強制的に時計回りで実施するようになる。Yが0未満の場合、Yの絶対値が適用されるが、反時計回りから交互に進める。
  • StagesPerDistOperSwap: このオプションで設定した数値をZとする。最初のZ個のステージでは、距離は加算する必要がある。その後のZ個のステージでは減算する必要があり、以降も繰り返す。0にすると、強制的に加算処理のみになる。Zが0未満の場合、Zの絶対値が適用されるが、減算処理から交互に進める。
  • ShuffleDigitsAlways: これが「false」の場合、数字のシャッフルは最初の1ステージのみ行われる。「true」にすると、各ステージを完了するたびに数字がシャッフルされる。

ミッション作成者は、各ミッションの説明文に以下の内容を追加することで、上記の設定を上書きできる。各項目の並びは、上記のオプションの並び順と同じである。#には数字を入れる。
[CCOverride] #,#,<true/false>,#,#,#,#,<true/false>
左下には、各ステージの要求事項を示す文字列が表示される。 この文字列はステージ1と解除時のみ表示される。
例:93t0d2e1b0f

1桁目:表示されうる最大の数字、2桁目:入力可能な数字の桁数(0から換算)、3桁目:RequireLastStageの値(t/f)、4桁目:この爆弾におけるW、5桁目:英字1文字(デバッグ用)、6桁目:この爆弾におけるX、7桁目:英字1文字(デバッグ用)、8桁目:この爆弾におけるY、9桁目:英字1文字(デバッグ用)、10桁目:この爆弾におけるZ、11桁目:shuffleDigitsAlwaysの値(t/f)