Increase the number!
A fork of Chinese LNGI v1 Different Notation Speed Buttons by 1DeQr / Level 4096 tile
xxxxxxxxxx
var t = 0;
var speed = 1;
var numberDisplay = 0;
function ptFunction(num) {
var i = num % 1;
return 10**((i+i**2)/2); // 1 for x.000, 10 for x.999
}
function tetrate10(num, format) { // 10^^x, format = 0,1
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (num >= 1 && num < 2 && ptFunction(num) < 3) {
if (format == 1) {
return (10**ptFunction(num)).toFixed(3);
} else {
return (10**ptFunction(num));
}
} else if (num >= 1 && num < 2) {
return (Math.floor(10**ptFunction(num))).toLocaleString();
} else if (num >= 2 && num < 10) {
var i = Math.floor(num) - 2;
return "10<sup>".repeat(i) + (10**((10**ptFunction(num))%1)).toFixed(3) + "×10<sup>" +
(Math.floor(10**ptFunction(num))).toLocaleString() + "</sup>".repeat(i+1);
} else {
return "10^^" + Math.floor(num);
}
}
function pentate10(num) { // 10^^^x
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (num >= 1 && num < 10) {
return "10^^".repeat(Math.floor(num)-1) + tetrate10(ptFunction(num),1);
} else {
return "10^^^" + Math.floor(num);
}
}
function arrow10(num,arrows) { // 10{arrows}x
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (num >= 1 && num < 10) {
if (arrows == 1) {
return Math.floor(10**((num+num**2)/2));
} else if (arrows == 2) {
return tetrate10(num,1);
} else if (arrows <= 5) {
return ("10"+"^".repeat(arrows-1)).repeat(Math.floor(num)-1) + arrow10(ptFunction(num), arrows-1);
} else if (arrows <= 20) {
return ("10{"+(arrows-1)+"}").repeat(Math.floor(num)-1) + arrow10(ptFunction(num), arrows-1);
} else {
return "10{" + arrows + "}" + num.toFixed(3);
}
} else if (arrows <= 5) {
return ("10"+"^".repeat(arrows)) + Math.floor(num);
} else if (arrows <= 20) {
return ("10{"+(arrows-1)+"}") + Math.floor(num);
} else {
return "10{" + arrows + "}" + num.toFixed(3);
}
}
function arrowAp(num) {
if (num >= 0 && num < 1) {
return tetrate10(num+1,0);
} else {
return arrow10(1+9**(((num%1)+(num%1)**2)/2), Math.floor(num+1));
}
}
function expand10(num) { // 10{{1}}x
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (num >= 1 && num < 10) {
if (num % 1 < 0.3004039542508032 && num >= 2) {
return "10{".repeat(Math.floor(num)-2) + arrowAp(expand10(num%1+1)*1) + "}10".repeat(Math.floor(num)-2);
} else {
return "10{".repeat(Math.floor(num)-1) + arrowAp(-1+11**((num%1+(num%1)**2)/2)) + "}10".repeat(Math.floor(num)-1);
}
} else {
return "10{{1}}" + num.toFixed(3);
}
}
function multiexpand10(num, format) { // 10{{2}}x
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (num >= 1 && num < 10) {
if (num%1 < 0.1914886570622825 && format == 0) {
return "10{{1}}".repeat(Math.floor(num)-1) + (expand10(ptFunction(num))*1).toFixed(3);
} else {
return "10{{1}}".repeat(Math.floor(num)-1) + expand10(ptFunction(num));
}
} else {
return "10{{2}}" + Math.floor(num);
}
}
function expandarrow10(num, arrows) { // 10{{a}}x
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (arrows == 1) {
return expand10(num);
} else if (arrows == 2) {
return multiexpand10(num, 0);
} else if (num >= 1 && num < 10 && arrows <= 15) {
return ("10{{" + (arrows-1) + "}}").repeat(Math.floor(num)-1) + expandarrow10(ptFunction(num), arrows-1);
} else {
return "10{{" + arrows + "}}" + num.toFixed(3);
}
}
function expandarrowAp(num) {
if (num >= 0 && num < 1) {
return multiexpand10(num+1, 1);
} else {
return expandarrow10(1+9**(((num%1)+(num%1)**2)/2), Math.floor(num+1));
}
}
function explode10(num) { // 10{{1}}x
if (num >= 0 && num < 1) {
return ptFunction(num);
} else if (num >= 1 && num < 10) {
if (num % 1 < 0.1293894400176223 && num >= 2) {
return "10{{".repeat(Math.floor(num)-2) + expandarrowAp(explode10(num%1+1)*1) + "}}10".repeat(Math.floor(num)-2);
} else {
return "10{{".repeat(Math.floor(num)-1) + expandarrowAp(-1+11**((num%1+(num%1)**2)/2)) + "}}10".repeat(Math.floor(num)-1);
}
} else {
return "10{{{1}}}" + num.toFixed(3);
}
}
function general(num,txt) {
if (num<5) {
return ["","10^","10^^","10^^^","10^^^^"][num]+txt
} else {
let s = Math.floor((num-1)/10)+1;
return ("10"+"{".repeat(s)+((num-1)%10+1)+"}".repeat(s))+txt
}
}
function generat(num,txt,rep) {
if (num<5) {
return ["","10^","10^^","10^^^","10^^^^"][num].repeat(rep)+txt
} else {
let s = Math.floor((num-1)/10)+1;
if (num%10>0) {
return ("10"+"{".repeat(s)+((num-1)%10+1)+"}".repeat(s)).repeat(rep)+txt
} else return ("10"+"{".repeat(s)).repeat(rep)+txt+("}".repeat(s)).repeat(rep)+"10"
}
}
function megote10(num,row) {
let s = 9**(num%1);
let s1 = ((11**(s%1)-1)/10)*Math.floor(num+1)
return generat(Math.floor(num),general(Math.floor(s1),s1<1?(10*10**(s1%1)).toFixed(3):(1+9**(s1%1)).toFixed(3)),Math.floor(s))
}
function valueNumber(t) {
var x = t;
if (x <= 100000) {
return (Math.floor(10**(x/10000)+x/5-1)).toLocaleString(); // up to 10^10
} else if (x <= 400000) {
let i = (x-100000)/300000;
return tetrate10(1+9**((i+i**2)/2),1); // up to 10^^10
} else if (x <= 800000) {
let i = (x-400000)/400000;
return pentate10(1+9**((i+i**2)/2)); // up to 10^^^10
} else if (x <= 1600000) {
let i = 2 + 8**((x-800000)/800000);
let j = i % 1;
return arrow10(1+9**((j+j**2)/2), Math.floor(i+1)); // up to {10,10,10}
} else if (x <= 2400000) {
let i = 1 + 9**((x-1600000)/800000);
return expand10(i); // up to {10,10,1,2}
} else if (x <= 3000000) {
let i = 1 + 9**((x-2400000)/600000);
return multiexpand10(i); // up to {10,10,2,2}
} else if (x <= 3800000) {
let i = 1 + 9**((x-3000000)/800000);
let j = i % 1;
return expandarrow10(1+9**((j+j**2)/2), Math.floor(i+1)); // up to {10,10,10,2}
} else if (x <= 4600000) {
let i = 1 + 9**((x-3800000)/800000);
return explode10(i); // up to {10,10,1,3}
} else if (x <= 6600000) {
let i = 20 + 80**((x-4600000)/2000000);
return megote10(i,5); // up to {10,10,10,10}
}
return "idk";
}
function Katakana(x,y) {
if (y<1) {
return ["","omega","megomega","gigomega","tegomega","pegomega","exgomega","zegomega","yogomega","brogomega"][Math.floor(x/1000)%10]+
["","alpha","beta","gamma","delta","theta","iota","kappa","lambda","sigma"][Math.floor(x/100)%10]+
["","geopa","amosa","hapra","kyra","pija","pija","sagana","pectra","nisaba"][Math.floor(x/10)%10]+
["","kila","mega","giga","tera","peta","exa","zetta","yotta","bronta"][Math.floor(x)%10]
} else if (x<18) {
return ["","mu","nu","xi","omicron","pi","rho","tau","upsilon","phi","chi","psi","epsilon","tepsilon","kuadspilon","gyo","rut","dot"][x].fontcolor(["yellow","orange","red","magenta","blue","cyan","lime"][(x-1)%7])
} else if (x<15) {
return Katakana(x-10,1)+"die".fontcolor("red")
} else if (x<25) {
return Katakana(x-15,1)+"bye".fontcolor("brown")
} else return Katakana(x%25,1)+["","tapyr","nuyr","xiyr","omicronyr","piyr","rhoyr","tauyr","upsilonyr","phiyr"][Math.floor(x/25)%10].fontcolor("silver")+["","zotz","dotz","totz","tetraz","pentaz","exaz","zetaz","yotaz","brontaz"][Math.floor(x/250)].fontcolor("gold")
}
function KTIndex(x) {
if (x<4) {
return Katakana(10**x,0)
} else if (x<10000) {
let st = (10**(x%4+4))%10000
return Katakana(10**(x%4),0)+Katakana(Math.floor(x/4),1)+Katakana(st,0)+(st<1?"":Katakana(Math.floor(x/4)-1,1))
} else {
let st = Math.floor(x/4)
return Katakana(10**(x%4),0)+"spyt".fontcolor("plum")+KTIndex(Math.log10(st)+(10**(-13)))+"spyta".fontcolor("plum")
}
}
function KTTetrate(x,y) {
if (x<1) {
return (y==1)?(Math.floor(10**x)):Katakana(10**x,0)
} else if (x<2) {
return (y==1)?(Math.floor(10**10**(x-1)).toLocaleString()):KTIndex(10**(x-1))
} else if (x<3) {
return (y==1)?((10**((10**10**(x%1))%1)).toFixed(4)+"x10<sup>"+Math.floor(10**10**(x%1))):KTIndex(10**10**(x-2))+"</sup>"
} else {
let st = Math.floor(x-2)
return (y==1)?("10<sup>".repeat(st)+KTTetrate(x%1+2,1))+"</sup>".repeat(st):(("te"+"sha".fontcolor("plum")).repeat(st)+KTIndex(10**10**(x%1)-Math.log10(4))+"spyta".fontcolor("plum").repeat(st))
}
}
function KTCurrent(x,y) {
if (x<10000) {
return (y==1)?(Math.floor(x/100)):(Katakana(x/100,0))
} else if (x<260000) {
let i = 2+((x-10000)/25000)
return (y==1)?(Math.floor(10**i).toLocaleString()):(KTIndex(i))
} else if (x<1000000) {
let st = ((x-260000)/740000)
let st2 = 10**(1+st*3)+Math.max(0,2*(1-st))
return (y==1)?((10**(st2%1)).toFixed(4)+"x10<sup>"+Math.floor(st2)):(KTIndex(st2))+"</sup>"
} else if (x<1500000) {
let st = ((x-1000000)/500000)
let st2 = 10**(4+st*6)
return (y==1)?("10<sup>"+Math.floor(st2).toLocaleString()):(KTIndex(st2))+"</sup>"
} else if (x<4000000) {
let st = 2+8**((x-1500000)/1000000)
return KTTetrate(st,y)
} else return (y==1)?("INTEGER OVERFLOWED!"):("[?]")
}
function displayOutput() {
document.getElementById("gent").innerHTML = "<sup>".repeat(8) + " " + "</sup>".repeat(8) + KTCurrent(t,1);
document.getElementById("number").innerHTML = KTCurrent(t,0)
document.getElementById("gent").style.color = "hsl("+(t/10)+",100%,50%)"
t+=speed;
t=Math.max(0,t);
}
setInterval(displayOutput,10);