Skip to content

Instantly share code, notes, and snippets.

@tompng
Created April 28, 2024 15:30
Show Gist options
  • Save tompng/eddf5372b9a5d9fde6cf9c67c7c5db90 to your computer and use it in GitHub Desktop.
Save tompng/eddf5372b9a5d9fde6cf9c67c7c5db90 to your computer and use it in GitHub Desktop.
%w@state=32;(st@=>s;at_exit{eval(
c=s*'')};s+=%w@ate..).each{|s|a=64.ch
r;t=((-11..11).map{|iy|((-22..22).map{|ix
|x,y=((ix+iy*2i)*(1i**(s/16r))).rect;[x.abs+(
y-5).abs,y+10].max<23.4??X:32.chr}*'').rstrip
}*$/).rstrip;t[/X{1,3}/]='%w'+a;t.sub!(t[
/X{18}[^X]+X{15}/]){a+'=>s;at_exit{ev
al('+_1.delete(?X)+"c=s*'')};s+=%
w"+a};t[-1]=a;d=c.sub(/[0-9]+
/){s%64}.chars;e=27.chr;$
><<e+'[H'+e+'[J'+t.gs
ub('X'){d.shift||
'#'}+e+'[24H'
;sleep(0.
05)}#
@
c = File.read(__FILE__).scan(/^#BEGIN\n(.*)\n^#END\n/m).join.split.join
$c=c
def $>.<<(s)
print s;
pre = s[/%w@[^@]*@=>s;at_exit\{eval\(/]
post = s[/c=s\*''\)\};s\+=%w@[^@]*@/]
unless pre && post && $c == (pre.split('@')[1]+post.split('@')[1]).split.join.gsub(/#+\z/,'').sub(/\d+/, '32')
puts "Invalid output"
p pre
p post
exit
end
end
#BEGIN
state=32;
(state..).each{|s|
a=64.chr;
t=((-11..11).map{|iy|
((-22..22).map{|ix|
x,y=((ix+iy*2i)*(1i**(s/16r))).rect;
[x.abs+(y-5).abs,y+10].max<23.4??X:32.chr
}*'').rstrip
}*$/).rstrip;
t[/X{1,3}/]='%w'+a;
t.sub!(t[/X{18}[^X]+X{15}/]){
a+'=>s;at_exit{eval('+_1.delete(?X)+"c=s*'')};s+=%w"+a
};
t[-1]=a;
d=c.sub(/[0-9]+/){s%64}.chars;
e=27.chr;
$><<e+'[H'+e+'[J'+t.gsub('X'){d.shift||'#'}+e+'[24H';sleep(0.05)
}
#END
%w~
s ta te =10;
~=>s;at_exit{eval(
c=s*'')};s+=%w~
pu ts(state);
~
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment