読者です 読者をやめる 読者になる 読者になる

latest log

酩酊状態で書いたエンジニアポエムです。酩酊状態で読んでください。

呼ばれてないけど、ボクもコードゴルフしてみたよ

集え変態プログラマ!JavaScriptの最短コードに挑んだコードゴルフ大会 in Code 2013

(ε・◇・)з o O ( 今回は可読性を意識しつつコードを削りました
(ε・◇・)з o O ( 以下のコードがベースです
(ε・◇・)з o O ( ここから人力で minify し
(ε・◇・)з o O ( setInterval(function...) を setInterval('...')に直すと、284文字になります〜
(ε・◇・)з o O ( 284文字版の動作するコードはこちら http://jsfiddle.net/uupaa/Mgc6R/

var currentTime = 0;
    reverseDigit = "75557111117471771717117557174775747111177575771757";
    dotPattern = {
        1: "  ■ ",
        2: " ■  ",
        4: "■   ",
        5: "■ ■ ",
        7: "■■■ "
    };

setInterval(function tick() {
    var html = "";
    var min = currentTime / 60 | 0;
    var sec = currentTime++ % 60;

    for (var i = 5; i--; ) {
        html += toDotLine(min / 10 | 0)
             +  toDotLine(min % 10)
             +  (i % 2 ? dotPattern[2]
                       : "    ")
             +  toDotLine(sec / 10 | 0)
             +  toDotLine(sec % 10)
             + "<br />";
    }
    document.body.innerHTML = html;

    function toDotLine(num) { // @arg Integer: digit. 0 ~ 9
                              // @ret String: dot pattern
        return dotPattern[ reverseDigit[num * 5 + i] ];
    }
}, 1000);

(ε・◇・)з o O ( もうちょっと削って273文字になりました http://jsfiddle.net/uupaa/V2hGn/1/

B=0;
D="75557111117471771717117557174775747111177575771757";
P="    ,  ■ , ■  ,,■   ,■ ■ ,,■■■ ".split(","),
setInterval('r="",m=B/60|0,s=B++%60;for(i=5;i--;r+=Z(m/10|0)+Z(m%10)+P[i%2*2]+Z(s/10|0)+Z(s%10)+"<br>")function Z(n){return P[D[n*5+i]]}document.body.innerHTML=r',1e3)