続・CodeJP 2013にて出題されたコードゴルフを頑張ってみた #codejp
CodeJP 2013にて出題されたコードゴルフを頑張ってみた #codejp - tututenの備忘録の続き
いろんな人のコードを参考に、自分の脳みそこねこねした集大成。
まだ短くなるかもだけど、また時間かかりそうなのでとりあえず載せるよ!
きっかけはまたもや他人様のコードを参考。
1ヶ月半も前にトラバで来ていたの知らなかったです(ごめんなさい)
てことで、
- nobuoka さん:Code 2013 のコードゴルフに挑戦してみた - ひだまりソケットは壊れない
参考させてもらいました!
実際Unicodeに圧縮してcharCodeAtする方法は
前回記事書いて数日後ぐらいに知ってました。
しかし、自分のコードで応用方法が思いつかなくて頓挫してました。
そこでnobuokaさんの利用方法をみて「あ、これなら一度壊せば反映できる」と思いました。
てことで、こちら
t=0; function a() { l=[t%10,t%60/10,10,t/60%10,t++/600] for(i=5,o='';i--;document.body.innerHTML=o+='<br>') for(j=20;j--;o+=' ■'['筯珧珏寉秏积牉篯篏А'.charCodeAt(l[j>>2])>>3*i>>j%4-1&1]); setTimeout(a,1e3) }a();
上記のをeval形式に圧縮すろと、こちら
t=0;eval(a="for(i=5,l=[t%10,t%60/10,10,t/60%10,t++/600],o='';i--;document.body.innerHTML=o+='<br>')for(j=20;j--;o+=' ■'['筯珧珏寉秏积牉篯篏А'.charCodeAt(l[j>>2])>>3*i>>j%4-1&1]);setTimeout(a,1e3)")
ということで、文字数だけなら200文字を切りました。(190文字)
バイト数ですともう少し多い215Byteにまでいきました。
.charCodeAt(l[j>>2])>>3*i>>j%4-1&1あたりをもう少しスリム化したいところ。
とりあえず、中間報告でした。