15 パズルを quine で作ってみました。 eval((%w[a=0;loop{a=(0..15).sort_by{rand};b=a.reverse;b=a[0,4]+b[8,4]+a [8,4]+b[0,4];n=0;16.times{|i|b[i]>0&&(0..i).map{|j|b[j]>b[i]&&n+=1}};n% 2>0&&break;};eval$s="b=0x#{a.map{|n|"%x"%n}.join}"+%w[;i=(m=0..15).find {|i|1>b&m=15<<4*i};t=m|n=m<<4*o=("AdABrBlBAuA"=~/(.)#{ARGV*''}\1/||04|| 0)-4;( n<1 ||n>1<<64||[255<<12]&[t>>040||0,t>>16, t]!=[])?t=0:i +=o;; ## s ####### ="eva