本帖最后由 LBQ 于 2015-9-6 03:02 编辑
极其简易的Voronoi图
(直接运行代码会长度报错,不过测过了函数本身内部不超过140字符,包括函数的def green超过)
(严格意义上这个不算合法的代码·,改改应该行,不过那些打代码高尔夫的都不是省油的灯我也懒得继续改了._.)
#red method def red(i,j) alias r rand w=h=1024 @b||=Array.new(100){[r(w),r(h),Array.new(3,r(256))]} @p||=Array.new(3){Table.new(w,h)} 0 end #green method def green(i,j) w=h=1024 @s||=w.times{|x|h.times{|y|(@b.min_by{|b|Math::hypot(b[0]-x,b[1]-y)}[2]).each_with_index{|e,i| @p[i][x,y] = e}};1} @p[1][i,j] end #bule method def bule(i,j) w=h=1024 @p[2][i,j] end
#red method
def red(i,j)
alias r rand
w=h=1024
@b||=Array.new(100){[r(w),r(h),Array.new(3,r(256))]}
@p||=Array.new(3){Table.new(w,h)}
0
end
#green method
def green(i,j)
w=h=1024
@s||=w.times{|x|h.times{|y|(@b.min_by{|b|Math::hypot(b[0]-x,b[1]-y)}[2]).each_with_index{|e,i| @p[i][x,y] = e}};1}
@p[1][i,j]
end
#bule method
def bule(i,j)
w=h=1024
@p[2][i,j]
end
PS:玩code golf需谨慎,参与者的那群人很多很可怕
(然后原来用c的感觉开发起来比用ruby会舒服很多233,ruby干这种事还是慢) |