Skip to content

Instantly share code, notes, and snippets.

@maraigue
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save maraigue/0c0a556286d246dd7d49 to your computer and use it in GitHub Desktop.
Save maraigue/0c0a556286d246dd7d49 to your computer and use it in GitHub Desktop.
CodeJP 2014のコードゴルフの私の回答
// 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment