A | 00000 |
---|---|
B | 00001 |
C | 00010 |
D | 00011 |
E | 00100 |
F | 00101 |
G | 00110 |
H | 00111 |
I | 01000 |
J | 01001 |
K | 01010 |
L | 01011 |
M | 01100 |
N | 01101 |
O | 01110 |
P | 01111 |
Q | 10000 |
R | 10001 |
S | 10010 |
T | 10011 |
U | 1010 |
V | 1011 |
W | 1100 |
X | 1101 |
Y | 1110 |
Z | 1111 |
モジュール詳細:ポケモンスプライト暗号
ニンテンドーゲームボーイのメモリは極端に少ないからね。
モジュールは、3つのディスプレー、キーボード、2つの矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。
右の矢印を押すと、次のページに移動できる。左の矢印を押すと前のページに移動できる。ページは全部で2ページある。
モジュールを解除するには、以下の5ステップに従って単語を復号する。復号された単語を取得したら、キーボードを使用して入力する。入力を開始すると、ディスプレーが空白になり、下のディスプレーに現在入力されている内容が表示される。
入力を消去するには、いずれかの矢印をクリックする。
入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。
ステップ1:暗号化二進数復元
このステップでは、1ページ目の上、真ん中、下のディスプレーと2ページ目の上のディスプレーの英字を使用する。この順番で連結し、各文字を右表のバイナリコードに置き換えて、このエンコード文字列を二進数に変換する。
ステップ2:ランレングス圧縮復号
最初に、1桁目を削除する。そのビットが1の場合は通常モードから開始し、そうでない場合、RLEモードから開始する。その後は、2つのモードを交互に繰り返す。
通常モード:ビットのペアを、 00 のペアに到達するまで読む。これらのビットはそのままにし、00のペアを削除する。
RLEモード:nを現在の位置から数えた連続する1のビットの個数に1を加えた数とする(現在の位置が0の場合、n = 1とすることに注意)。現在の位置からnビット(0が1つ、残りすべてのビットが1になる)分を二進数として読み、そこから続いてnビットを読んで別の二進数を取得する。2つの二進数を合計する。1を足す。2を乗算する。その後、先程の2nビットを、求めた数と同じ個数分の0のビットに変更する。