文字列を出力するプログラムを楽に難読化(?)する方法
センスは感じられないがBrainfuckを使えばとりあえずぱっと見何やってるかわからない. 配列(とポインタ)さえ扱えればどんな言語でもできるはず. 1時間もかからない.
完成した例がこちら. 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);}