モジュール詳細:夢想暗号

こんなくだらないことに付き合っているほど、私は頭が回っていない。ベッドに戻るよ。

  • 円形スクリーンの下半分に沿って記号の並びが表示される。一連の記号のいくつかは英語のアルファベットに対応しており、他の記号は偽物である。
  • どの記号がどの文字に対応するかを知るには、次ページの「グリフアルファベットの再構築」を参照する。
  • その後、復号された単語を得るために、モジュール上のそれぞれの記号を出現順に文字に変換する。塗りつぶされていない記号は塗りつぶされた記号と同じように扱い、グリフアルファベットにない記号は無視すること。
  • 復号された単語は常に、長さ8文字から15文字の有効な英単語となる。
  • 表示モード中、外側の矢印ボタンは記号を素早く循環させ、×ボタンは記号の自動循環を停止させ、○ボタンは自動循環を再開させる。
  • 単語を復号した後、モジュールの上半分にあるENTERボタンを押して、モジュールを入力モードにする。
  • 入力モード中、外側の矢印ボタンは文字を循環させ、○ボタンはハイライトされた文字を入力し、×ボタンは最後に入力された文字を削除する。円形スクリーンの上半分には、現在入力されている文字が表示される。
  • 入力モードを終了するには、もう一度ENTERボタンを押す。文字が入力されている場合、この時点で送信される。
  • 送信された文字が復号された単語と一致しない場合、ミスが記録され、表示モードに戻る。なお、テキストが入力されなかった場合、モジュールはペナルティなしで表示モードに戻る。

グリフアルファベットの再構築

  • まず、モジュール上に表示されている記号から 16 ビットの二進数の数字列を作成する。ここで、各ビットは記号が塗りつぶされていない場合は 0、塗りつぶされている場合は 1 となる。
    (左端のビットは最初に表示された記号に対応する)
  • 文字列の左端から 8 ビットを取り出し、十進数に変換する。これは開始する記号の番号であり、 左上の 0 から始まり、読み順に進む。必要に応じてループする。
  • 文字列の次の 4 ビットを取り出し、十進数に変換する。その数字に 1 を加え、 その数だけ記号を進め、必要に応じてループする。結果として得られる記号はシリアルナンバーの最後の英字に対応する。
  • 文字列の次の4ビットについても同様に進め、結果を英語のアルファベットの次の文字に割り当て、必要に応じてZからAに折り返す。
  • 文字列のすべてのビットが使用された場合、以下の手順を使用して、元の文字列から次の新しい 16 ビットの数字列を導き出す:
    • x を直前のビット列とする。
    • x を1+(シリアルナンバーの最初の数字)の数だけ左にシフトし、それを x とXORし、結果を x として保存する。
    • x を1+(シリアルナンバーの最後の数字)の数だけ右にシフトし、それを x とXORし、結果を x として保存する。
    • x を1+(シリアルナンバーの数字の合計を15で割った余り)の数だけ左にシフトし、それを x とXORする。
    • すべてのシフトは論理シフトであり、常にゼロでシフトする。

  • グリフアルファベットには重複した記号を含めることはできない。既に使用されている記号に着地した場合、さらに1つ記号を進める。開始した記号はアルファベットの一部ではないので、再び着地してもスキップされるべきではない
  • アルファベットのすべての文字が記号に割り当てられるまで、上記の操作を繰り返す。

備考

  • 下の表は、それぞれの記号の塗りつぶしバージョンのみを示している。
  • モジュール上の表示では、記号が一番下に来た時に直立するように配置される。
  • 区切りは小さな水平線であり、表には現れない。これはシーケンスの終わりを示し、文字には変換されない。しかし、他のグリフと同様に塗りつぶしを考慮することができる。

表示される記号