এখানে আর একটি ম্যানুয়ালি ডিওবাফাসেকেটেড সংস্করণ রয়েছে যা সমস্ত সূচনাটি প্রকাশের বাইরে নিয়ে যায় নিজের বিবৃতিতে:
z='p="<"+"pre>"/* ,.oq#+ ,._, */;for(y in n="zw24l6k\
4e3t4jnt4qj24xh2 x/* =<,m#F^ A W###q. */42kty24wrt413n243n\
9h243pdxt41csb yz/* #K q##H######Am */43iyb6k43pk7243nm\
r24".split(4)){/* dP cpq#q##########b, */for(a in t=pars\
eInt(n[y],36)+/* p##@###YG=[#######y */(e=x=r=[]))for\
(r=!r,i=0;t[a/* d#qg `*PWo##q#######D */]>i;i+=.05)wi\
th(Math)x-= /* aem1k.com Q###KWR#### W[ */.05,0>cos(o=\
new Date/1e3/* .Q#########Md#.###OP A@ , */+x/PI)&&(e[~\
~(32*sin(o)*/* , (W#####Xx######.P^ T % */sin(.5+y/7))\
+60] =-~ r);/* #y `^TqW####P###BP */for(x=0;122>\
x;)p+=" *#"/* b. OQ####x#K */[e[x++]+e[x++\
]]||(S=("eval"/* l `X#####D , */+"(z=\'"+z.spl\
it(B = "\\\\")./* G####B" # */join(B+B).split\
(Q="\'").join(B+Q/* VQBP` */)+Q+")//m1k")[x/2\
+61*y-1]).fontcolor/* TP */(/\\w/.test(S)&&"#\
03B");document.body.innerHTML=p+=B+"\\n"}setTimeout(z)';
p = "<" + "pre>";
n = ["zw2", "l6k", "e3t", "jnt", "qj2", "xh2 x/* =<,m#F^ A W###q. */", "2kty2", "wrt", "13n2", "3n9h2", "3pdxt", "1csb yz/* #K q##H######Am */", "3iyb6k", "3pk72", "3nmr2", ""]
for (y in n) {
e = [];
x = 0;
r = true;
t = parseInt(n[y], 36) + "";
for (a in t) {
r = !r
for (i = 0; i < t[a]; i += 0.05) {
x -= 0.05;
o = new Date / 1e3 + x / Math.PI
if (Math.cos(o) < 0)
e[~~(32 * Math.sin(o) * Math.sin(0.5 + y / 7)) + 60] = -~r;
}
for (x = 0; x < 122;) {
S = "eval" + "(z='" + z.split(B = "\\").join(B + B).split(Q = "'").join(B + Q) + Q + ")//m1k"
p += " *#"[e[x++] + e[x++]] || S[x/2+61*y-1]).fontcolor(/\w/.test(S[x/2+61*y-1]) && "#03B");
}
p += B + "\n";
document.body.innerHTML = p;
}
setTimeout(z)
যা ঘটে তা এখানে:
zসমস্ত কোড যুক্ত একটি মাল্টলাইন স্ট্রিং। এটি evalএড।
- কোড শেষে,
zপাস করা হয় setTimeout। এটি সর্বাধিক সম্ভাব্য হারে অন্তর অন্তর মূল্যায়ন করে requestAnimationFrameএবং এর মতো কাজ করে eval।
- কোডটি নিজেই সূচনা করে
p, স্ট্রিং বাফার যার উপরে এইচটিএমএল যুক্ত করা হবে এবং nবেস-36 36-এনকোডড সংখ্যার একটি অ্যারে (একটি স্ট্রিংয়ে যোগ হয়েছে "4", মন্তব্যগুলি অপ্রাসঙ্গিক আবর্জনা হিসাবে বিবেচিত নয় parseInt)।
- এর প্রতিটি সংখ্যা
nএকটি লাইনকে এনকোড করে ( n.length == 16)। এটি এখন গণনা করা হয়েছে ।
- একটি গুচ্ছ ভেরিয়েবল সূচনা করা হয়, কিছু
eঅ্যারে আক্ষরিক হিসাবে ছদ্মবেশযুক্ত তবে সেগুলি তখন ব্যবহার করা হয় এমন সংখ্যায় ( x) বা বুলিয়ান ( r) বা স্ট্রিং ( t) এ দেওয়া হয়।
- সংখ্যার প্রতিটি অঙ্ক
tগণনা করা হয়, rপ্রতিটি বুলিয়ান উল্টিয়ে দেয় । বিভিন্ন কোণগুলির জন্য x, এবং বর্তমান সময়ের উপর নির্ভর করে new Date / 1000(যাতে এটি একটি অ্যানিমেশন দেয়), অ্যারে eকিছু বিটওয়াইজ অপারেটর ব্যবহার করে পূরণ করা হয় - 1কখন rমিথ্যা হয় এবং 2কখন rসেই সময় সত্য হয়।
- তারপরে একটি লুপটি
x=0একক অক্ষরগুলিতে যুক্ত করে ডাবল পদক্ষেপে 122 থেকে চিত্রের 61 টি কলামকে পুনরাবৃত্তি করে p।
Bব্যাকস্ল্যাশ হওয়ায়, স্ট্রিংটি Sকোডের স্ট্রিং zথেকে ব্যাকস্ল্যাশ এবং অ্যাস্টোস্ট্রোফেসে পালিয়ে তৈরি করা হয়েছে, উত্সটিতে যা দেখেছে তার সঠিক প্রতিনিধিত্ব পেতে।
- অ্যানিমেটেড চিত্রটি তৈরি করতে, থেকে পর পরের দুটি সংখ্যক সংখ্যক
eযোগ করা হয় এবং এর থেকে কোনও চরিত্র অ্যাক্সেস করতে ব্যবহৃত হয় " *#"। সূচকগুলির কোনও একটি সংজ্ঞায়িত না হলে সূচকটি NaNএকটি অনির্ধারিত অক্ষরের সাথে সমাধান হয় এবং তার পরিবর্তে Sস্ট্রিং থেকে সংশ্লিষ্ট অক্ষর নেওয়া হয় (সূত্রটি দেখুন x/2+61*y-1)। যদি সেই অক্ষরটি কোনও শব্দের চরিত্র হওয়া উচিত , তবে fontcolorস্ট্রিং পদ্ধতিটি ব্যবহার করে এটি আলাদাভাবে রঙিন হয় ।
- প্রতিটি লাইনের পরে, পিছনের ব্যাকস্পেস এবং একটি লাইনব্র্যাক যুক্ত করা হয়
pএবং HTML স্ট্রিংটি নথির বডিতে নির্ধারিত হয়।
ন্যূনতম উদাহরণের জন্য কীভাবে একই প্রভাবটি আবার লেখা যেতে পারে?
এখানে একটি অন্য উদাহরণ:
setInterval(z='s=("setInterval(z=\'"+\
z.replace(/[\\\\\']/g,"\\\\$&")+"\')"\
).match(/.{1,37}/g).join("\\\\\\n");d\
ocument.body.innerHTML=\"<\\pre>"+s.s\
lice(0, 175)+String( + new Date()).fo\
ntcolor("red")+s.slice(188)')
( jsfiddle.net এ ডেমো )
এটিতে আপনার এ জাতীয় অ্যানিমেশনের জন্য প্রয়োজনীয় সমস্ত রিলেভেন্ট জিনিস রয়েছে:
setIntervalএবং Dateঅ্যানিমেশন জন্য
এখানে নিজস্ব কোডের একটি পুনর্গঠন ( কুইন-লাইক ):
s = ( "setInterval(z='"
+ z.replace(/[\\\']/g,"\\$&")
+ "\')" )
.match(/.{1,37}/g).join("\\\n");
মাধ্যমে আউটপুট document.body.innerHTMLএবং একটি <pre>উপাদান
- কোডের কিছু অংশ অ্যানিমেটেড স্ট্রিংয়ের সাথে প্রতিস্থাপন করা হচ্ছে