文字列を出力するプログラムを楽に難読化(?)する方法

センスは感じられないがBrainfuckを使えばとりあえずぱっと見何やってるかわからない. 配列(とポインタ)さえ扱えればどんな言語でもできるはず. 1時間もかからない.

  1. 入力した文字列を出力するBrainfuckコードを出力するプログラムをインターネット上で見つける.
  2. Brainfuckコードを得る.
  3. 好きな言語に翻訳
  4. 整形
  5. 完成.

完成した例がこちら. 1文字目で張り切りすぎてバランスが悪い. 「み」と「と」だけを使おうと努力はした.

#define Mi while
#define To putchar
char mi[3+10];main(to){
            *(mi+--to)
            +=01+3;Mi(
            *(mi+to++)
            +=01+3,*(mi                 +to--)-=3,10,
            *mi)to;To(                  ++*(mi+to+++
            01));Mi(*(                  mi+to++)-=3,
            ++*(mi+to--                 ),*(mi+01));
*(mi+to+++01)+=3;To(*(mi+to));Mi(*(mi+to++)-=3,++*(mi+to--),
*(mi+to));*(mi+to+++01)-=01+3;To(--*(mi+to));*(mi+to)-=3;Mi
(--        *(mi+to++),                  *(mi+to--)+=
01+        3,*(mi+to))                  ;To(01+*(mi+
to++       +01));Mi(*(                  mi+to++)-=01
+3         ,++*(mi+to                   --),*(mi+to
));        *(mi+to++                    +01)+=3;To
(*(mi+to));*(mi+to                      )+=01+01;
 Mi(*(mi+to++)-=                        3,*(mi+
   to--)+=01+                           01,*(
     mi+to)                             );To
                                        (*


     (mi+to                        +++01
       ));*(                    mi+to
        )+=3;               To(*(mi
         +to));          *(mi+to)
          +=-3+     10;To((*
          (mi+to  ))++);Mi
           (--*(mi+to++)
         ,*(mi+to--
       )+=3,*
     (mi+to
     ));To
     (*(mi
     +to++
      +01));
        *(mi+to)
           -=01+01;Mi(*(mi+to++)-=3,
                 ++*(mi+to--),*(



    mi+to));--*(mi+to+++01);To(*(mi+to));
                               *(mi+to)
                 +=3+3;        Mi(--
                  *(mi+        to
                  ++),*        (mi
                  +to--
                  )+=01
                 +01,*
                (mi+to
                ));++
               *(mi+
               to++
              +01
              );


               To((
               *(mi
               +to)
               )++);
               Mi(*
               (mi+
               to++
               )-=3
               ,*(mi
               +to--
               )-=01
               -3+01
               -3,*(
               mi+to
               ));++
               *(mi+
               to++
               +01)


        ;To(*
        (mi+
        to));
        *(mi
        +to)
        +=01+
        10;To
        ((*(
        mi+to
        ))--);*(mi
        +to)-=01+3;To
        ((*(     mi+to)
        )++);      Mi(*(mi
        +to++         )-=3,*
        (mi+to          --)-=
        01-3+             01-3,
        *(mi+              to));
        --*(
        mi+to
        +++01
        );To(
        *(mi+
        to++)


                          );To(*(
                          mi+ to)
                           +10);}