mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
50 lines
834 B
Ruby
50 lines
834 B
Ruby
|
# random dot steraogram
|
|||
|
# usage: rcs.rb rcs.dat
|
|||
|
|
|||
|
sw = 40.0 # <20><><EFBFBD>̃p<CC83>^<5E>[<5B><><EFBFBD>̕<EFBFBD>
|
|||
|
dw = 78.0 # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Random Character Streogram <20>̕<EFBFBD>
|
|||
|
hdw = dw / 2.0
|
|||
|
w = 20.0 # <20><><EFBFBD><EFBFBD><EFBFBD>̕<EFBFBD>
|
|||
|
h =1.0 # <20><><EFBFBD>ʂƊ<C68A>ʂ̋<CA82><CC8B><EFBFBD>
|
|||
|
d = 0.2 # <20>P<EFBFBD>ʓ<EFBFBD><CA93><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̕<EFBFBD><CC95><EFBFBD><EFBFBD>オ<EFBFBD><E382AA><EFBFBD><EFBFBD>
|
|||
|
ss="abcdefghijklmnopqrstuvwxyz0123456789#!$%^&*()-=\\[];'`,./"
|
|||
|
rnd = srand()
|
|||
|
|
|||
|
while gets()
|
|||
|
# print($_)
|
|||
|
xr = -hdw; y = h * 1.0; maxxl = -999
|
|||
|
s = "";
|
|||
|
while xr < hdw
|
|||
|
x = xr * (1 + y) - y * w / 2
|
|||
|
i = (x / (1 + h) + sw / 2)
|
|||
|
if (1 < i && i < $_.length);
|
|||
|
c = $_[i, 1].to_i
|
|||
|
else
|
|||
|
c = 0
|
|||
|
end
|
|||
|
y = h - d * c
|
|||
|
xl = xr - w * y / (1 + y);
|
|||
|
if xl < -hdw || xl >= hdw || xl <= maxxl
|
|||
|
tt = rand(ss.length)
|
|||
|
c = ss[tt, 1]
|
|||
|
else
|
|||
|
c = s[xl + hdw, 1]
|
|||
|
maxxl = xl
|
|||
|
end
|
|||
|
s += c
|
|||
|
xr += 1
|
|||
|
end
|
|||
|
print(s, "\n")
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|