モジュール詳細:サイモンの詐欺

サイモン、お前がズルするなら、少なくとも *えーと*...

モジュールの中央には、三方向に分かれた赤、青、緑のボタンが付いている。

分析担当者の目標は次の通り: マスターマインドゲームでズルをするサイモンに勝利する。

モジュールが起動すると、二つのコードを生成する: 正解定数である。
解答を送信する度に、サイモンは出力入力に基づいて 正解を変更する。

出力について:

解答を送信すると、サイモンは定数のコピーを変更し、それを出力として表示する。

最初に、入力に基づいて順番に以下の動作を実行する:

  • 黒: 文字列を反転する
  • 赤: 赤のチャンネルを反転する
  • 青: 青のチャンネルを反転する
  • 緑: 緑のチャンネルを反転する
  • シアン: 左へ一つずらす
  • マゼンタ: 右へ一つずらす
  • 黄: 全てのチャンネルを反転する
  • 白: 文字列を半分に分けて反転する (STRING -> RTSGNI)

その後、サイモンは変更した文字列と入力をXOR* で演算する。

最後に、正答した位置の色を全て反転する。

新しい正解について:

サイモンは入力の結果を暗号化するだけではなく、正解も変更する。

最初に、サイモンは出力と前の正解 (変更前の正解) を XOR で演算する。

次に、サイモンは入力の N%6番目を取る。 - N はモジュールに解答を送信した回数 - そして以下のように正解を変更する:

赤のビットが1の場合、シーケンスの最初の半分を順番を反転する。そうでない場合、 もう半分を反転する。

緑のビットが1の場合、シーケンスの最初の半分の色を反転する。そうでない場合、 もう半分の色を反転する。

青のビットが1の場合、シーケンスを左に一つずらす。そうでない場合、右に一つずらす。

RGBボタンの使用:

ボタンをクリックするとボタンのLEDが点灯する。

中央のボタンを押すと、送信するシーケンスの末尾にボタンの状態に基づいた色が追加される。

シーケンスは六つの色で構成する必要がある。

六つの色を入力した後、のボタンを押すと、入力したシーケンスをクリアし、のボタンを押すと、シーケンスが正解ならばモジュールが解除され、のボタンを押すと、シーケンスの出力がモジュールに表示される。

シーケンスの出力は中央の黒い部品とその他の色のボタンに点滅で表示される。 中央の黒い部品のみが点滅する場合、出力は黒である。

解説:

これは8種類の色を使用する6つの色のシーケンスのマスターマインドゲームである。

XOR 演算はビット演算の一種であり、片方のビットが 1 である場合に 1 を返す。 (赤 XOR 青 = マゼンタ、黄色 XOR シアン = マゼンタ)