ENIGMA I SIMULATOR

ドイツ軍の暗号機エニグマ Iのシミュレータです。作成に当たってはCrypto MuseumDenCodeを非常に参考にさせていただきました。

⚙️ 細かい設定 ⚙️

おまけ:日本語対応エニグマ

細かい設定は作るのがめんどくさかったのでないです。

裏話

この日本語対応エニグマはこんな感じの定義になっています。この部分だけ見せられてもいやなんのこっちゃって感じだと思いますが、まあ要するにこの日本語版エニグマの設定にもいろいろ元ネタがあるという話です。

        new class extends AbstractEnigma {} (
    new PlugBoard(
        Alphabet.iroha,
        /* あめつちの詞、二回目の「え」は「ん」で置き換えた */
        ['あ', 'め'], ['つ', 'ち'], ['ほ', 'し'], ['そ', 'ら'], ['や', 'ま'], ['か', 'は'], ['み', 'ね'], ['た', 'に'],
        ['く', 'も'], ['き', 'り'], ['む', 'ろ'], ['こ', 'け'], ['ひ', 'と'], ['い', 'ぬ'], ['う', 'へ'], ['す', 'ゑ'],
        ['ゆ', 'わ'], ['さ', 'る'], ['お', 'ふ'], ['せ', 'よ'], ['え', 'の'], ['ん', 'を'], ['な', 'れ'], ['ゐ', 'て']
    ),
    [
        /* 大為爾の歌、末尾に「ん」を追加した */
        new Rotor(Alphabet.iroha, 'たゐにいてなつむわれをそきみめすとあさりおひゆくやましろのうちゑへるこらもはほせよえふねかけぬん', 'い'),
        /* 鳥啼歌 */
        new Rotor(Alphabet.iroha, 'とりなくこゑすゆめさませみよあけわたるひんかしをそらいろはえておきつへにほふねむれゐぬもやのうち', 'ろ'),
        /* マジック・ザ・ギャザリング "Now I Know My ABC's" の日本語版フレーバーテキスト、「ゐ」「ゑ」を追加した */
        new Rotor(Alphabet.iroha, 'れきせんへるすはやいくろこおになまけとわあふたちをひらりかみしものぬえむねほめてよつゆさそうゐゑ', 'は')
    ],
    /* 自動生成したものなので特に元ネタはない */
    new Reflector(Alphabet.iroha, 'わせもねよとへるめえちないまほきおのんにをしゆてくそれゐゑかさすみぬうひけたむりこらやあはろふつ'),
    'やまと',
    'ことは'
);