CodeJP 2014のコードゴルフの私の回答
http://jsfiddle.net/maraigue/cqpx5m4p/1/
- 以下のjsファイルのどちらかをダウンロードし、main.jsの名前で保存する
- 実行用HTMLファイルをダウンロードして同じフォルダに置き、これを適当なブラウザで開く
CodeJP 2014のコードゴルフの私の回答
http://jsfiddle.net/maraigue/cqpx5m4p/1/
// Ticker表示する文字の定義 | |
m=[]; | |
for(i=20;i--;){ | |
c="涶Ґఘᑛ沕ؘᒑ咕哕".charCodeAt(i%10); | |
// 表示する各文字の各行に3ビット用いることに着目し、 | |
// (例えば、行が"_****"であれば「100」とみなす。 | |
// 真ん中の3つは必ず一致していることに注意) | |
// それをUnicodeで表現したものに置き換えている。 | |
for(j=5;j--;c/=8)m[j]+="*_"[c/4&1]+["***","___"][c/2&1]+"*_"[c&1]+"_" | |
} | |
// 表示する | |
b=0; | |
setInterval(function(){ | |
n=""; | |
for(j in m)n+=m[j].substr(b+9,30)+"<br>"; | |
// ↑9を足しているのは、mの各要素の先頭に「undefined」という文字が入るため | |
b=++b%60; | |
document.body.innerHTML=n | |
},300) | |
// minified: 225chars (243bytes) | |
//m=[];for(i=20;i--;){c="涶Ґఘᑛ沕ؘᒑ咕哕".charCodeAt(i%10);for(j=5;j--;c/=8)m[j]+="*_"[c/4&1]+["***","___"][c/2&1]+"*_"[c&1]+"_"}b=0;setInterval('n="";for(j in m)n+=m[j].substr(b+9,30)+"<br>";b=++b%60;document.body.innerHTML=n',300) |
// Ticker表示する文字の定義 | |
t="_***__|*___*_|*_____|****__|*****_|____*_".split("|"); | |
v="ጭ孭䉌䬔㋒婈䔔㉋Ɉʈ"; | |
m=["","","","",""]; | |
for(i=20;i--;){ | |
c=v.charCodeAt(i%10); | |
for(j=5;j--;c>>=3)m[j]+=t[c&7] | |
} | |
// 表示する | |
b=0; | |
setInterval(function(){ | |
n=""; | |
for(j in m)n+=m[j].substr(b,30)+"<br>"; | |
b=++b%60; | |
document.body.innerHTML=n | |
},300) | |
// minified: 262chars (280bytes) | |
//t="_***__|*___*_|*_____|****__|*****_|____*_".split("|");v="ጭ孭䉌䬔㋒婈䔔㉋Ɉʈ";m=["","","","",""];for(i=20;i--;){c=v.charCodeAt(i%10);for(j=5;j--;){m[j]+=t[c&7];c>>=3}}b=0;setInterval('n="";for(j in m)n+=m[j].substr(b,30)+"<br>";b=++b%60;document.body.innerHTML=n',300) |
// ---------- Ticker表示する文字の定義 | |
t="_***__|*___*_|*_____|****__|*****_|____*_".split("|"); | |
// 表示すべき文字の各行は、tの要素が10個並んだものなので | |
// それを6進法の10桁で表現している | |
v=[19812924,19003723,49200956,59177131,60109452]; | |
for(i in v){ | |
k=""; | |
c=v[i]; | |
for(j=10;j--;){ | |
k+=t[c%6]; | |
c=parseInt(c/6) | |
} | |
// 2個繋げることで、あとでsubstrを取るのを楽にする | |
v[i]=k+k | |
} | |
// ---------- 表示する | |
b=0; | |
setInterval(function(){ | |
n=""; | |
for(j in v)n+=v[j].substr(b,30)+"<br>"; | |
b=++b%60; | |
document.body.innerHTML=n | |
},300) | |
// minified: 291bytes | |
//t="_***__|*___*_|*_____|****__|*****_|____*_".split("|");v=[19812924,19003723,49200956,59177131,60109452];for(i in v){k="";c=v[i];for(j=10;j--;){k+=t[c%6];c=parseInt(c/6)}v[i]=k+k}b=0;setInterval(function(){n="";for(j in v)n+=v[j].substr(b,30)+"<br>";b=++b%60;document.body.innerHTML=n},300) |