From 69c0972c81c60f47217a6e345b6e01b73de41af4 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 31 Jan 2024 23:40:27 +0900 Subject: add files --- pw0.rb | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pw0.rb (limited to 'pw0.rb') diff --git a/pw0.rb b/pw0.rb new file mode 100644 index 0000000..35e1303 --- /dev/null +++ b/pw0.rb @@ -0,0 +1,68 @@ +eval(s=(%w@ + q=$*[0]&.to_i; + + z="eval(s=(%w#{64.chr}#{s}##{s*9}#{64.chr}.join))"; + + h=25;w=80; + px=2;py=h/2; + vx=0.5;vy=-0.5; + qx=w-3;qy=h/2; + ux=-0.5;uy=0.5; + + b=Array.new(h*w){|i| + y=i/w; + x=i%w; + (x==0||x==w-1||y==0||y==h-1)?2:(w/2(x,y,vx,vy,c){ + sx=vx;sy=vy; + 8.times{|i| + t=i*Math::PI/4; + cos=Math.cos(t); + sin=Math.sin(t); + nx=x+cos/2; + ny=y+sin/2; + k=ny.to_i*w+nx.to_i; + if(0<=nx&&nx(x,y,vx,vy){ + [(x+vx<0||w<=x+vx)?-vx:vx,(y+vy<0||h<=y+vy)?-vy:vy] + }; + + j=0; + loop{ + j+=1; + (vx,vy=f[px,py,vx,vy,0]); + (vx,vy=g[px,py,vx,vy]); + px+=vx; + py+=vy; + (ux,uy=f[qx,qy,ux,uy,1]); + (ux,uy=g[qx,qy,ux,uy]); + qx+=ux; + qy+=uy; + q&&((q=w-8)?"#{64.chr}.join))"[8+x-w]:c[y*w+x]?[z[i],i+=1][0]:32.chr) + }; + puts; + }; + sleep(0.05); + } + +@.join)) -- cgit v1.2.3-70-g09d2