tkquine

Ruby/Tk で quine 。

eval$s=%q(require"tk"
r=Tk.root;r.withdraw
x=y=22;s="eval$s=%q(#$s)"
f=proc{c=s.slice! 0,1
 (f[y+=x=22];next)if"\n"==c
 w=TkToplevel.new(r){
  withdraw
  geometry"18x18+#{x}+#{y}"
  overrideredirect true
  bind"Button",proc{exit}
  deiconify
 }
 l=TkLabel.new(w,:text=>c)
 l.pack;x+=22
 Tk.after(10,f)if s!=""
};f[];Tk.mainloop
#(c)YusukeEndoh2010)

VirtualBox 上の Ubuntuwindows 上の Xming で動作確認。
実行の様子。

tk らしい quine にしたかったのだけど、tk らしさというものがわからなかったので、とりあえず窓をいっぱい作りました。ぱぱぱぱぱ、と 1 文字ずつ窓が出てくる。

どの文字でもクリックすれば終わります。