-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquine.rb
27 lines (27 loc) · 1.27 KB
/
quine.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
i=1;eval$s=%w(s=%(i=#{(i+1)%4};eval$s=%w(#{$s})
*"";);WS=["sgO2ME;poF1=m,@XWI?<.eYg3DGA8XD.uNmm
:ewRFsB5vWGs1d_m[e4XahTnQ>GMBL,fal2T*JRpKM?R+o:
_GFg;rH}X9fOsBo34aPvcye-+g3P9GIh?-N46TW_0oA+a_E
eUk5UkRh3;","sgO2ME;poF1=m,@XWI?<.eYg3DGA8XD/>7
^pU0aduW3Ct++20b=<gEwgGw5U`d+GQP>o8x,:R^,7dH.t/
0N1`;=f[6du<gc|zQ,2p]7H2{|?7]9pHh-Bpu98oJywSRBA
N6jIs<VesOgO","sgO2ME;poF1=m,@XWI?<.eYg3DGA8XD/
N9]e]93ZsJkFBq t+~dAX8w1O9a2eRsey0tIUwk5>UShe
1y`M*9AOrX=[v^ mP,VV;Ct.T*vIu4K_e}wqRrLn^Yws7
LELA^o9ZiWJMce gE=lUh","sgO2ME;poF1=m,@XWI?<.
eYg3DGA8XDoloM VV3`>Ae-{,w>-;X|~CVeyYWS,762;V
I>swMN5CNO}=@> J`o:Nzv*1|[KH;D=SCD?~upxiJLZJK
hnXoG3F7uEWMOk w+ueY@G0@K|mWbcC`"];n=WS[i];f=
0;n.bytes{|m|f =f*84+(m-8)%85};st=0;ps=false;
sep=38.chr;g=- >l{cc=l.count('1');cs='';nst=0
;ft=->{h=s.sli ce(st..-1);nst=st+cc-s.size;if
(!ps);s='%q'+s ep+s;ps=true;end;t=s.slice(0,n
st);cs=h+t;};f f=->{cs=s.slic
e(st,cc);nst=st+cc;};(st+cc>s.size)?ft.call():f
f.call();st=nst;l.split('').reduce(''){|a,c|a+(
(c=='1')?cs.slice!(0):32.chr)}};R=19;C=47;P='1'
*C;4.times{puts(g[P])};R.times{|y|puts(g[(0..C-
1).map{|x|f[x+y*C]}.join]);};puts(g[P],g[P],g[P
],g[P[0..-2]]+sep);)*"";%q&i=1;eval$s=%w(s=%(i=
#{(i+1)%4};eval$s=%w(#{$s})*"";);WS=["sgO2ME;po
F1=m,@XWI?<.eYg3DGA8XD.uNmm:ewRFsB5vWGs1d_m[e4&