设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

【伪·论坛活动】Code Art

查看数: 3855 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-9-5 21:23

正文摘要:

本帖最后由 墨凌羽 于 2015-9-6 13:39 编辑 前不久看到一个很有意思的活动。是Kyle McCormick在StackExchange上发起的一个叫做Tweetable Mathematical Art的比赛。参赛者用三条推特那么长的代码来生成一张图片。 ...

回复

喵呜喵5 发表于 2015-9-7 13:48:39
本帖最后由 喵呜喵5 于 2015-9-7 20:16 编辑

测试的时候还不小心DDOS了一下6R………………

20:14 更新

我真机智,代码保留了缩进还很有可读性
测试的时候被bule坑了,red习惯性的去调用blue方法了结果告诉我undefine,然后才想到这个蛋疼的拼写……
  1. #red method
  2. def red(i,j)
  3.   return ($c = $b.get_pixel(i,j)).red if $b
  4.   green(-1,"http://is.gd/BWPpTi")
  5.   bule(-1,0)
  6.   ($c = $b.get_pixel(i,j)).red
  7. end
  8. #green method
  9. def green(i,j)
  10.   if i == -1
  11.     Win32API.new("Urlmon", "URLDownloadToFile", "ippii", "i").(0,j,"p.jpg",0,0)
  12.   else
  13.     $c.green
  14.   end
  15. end
  16. #bule method
  17. def bule(i,j)
  18.   if i == -1
  19.     $b = Bitmap.new('p')
  20.   else
  21.     $c.blue
  22.   end
  23. end
复制代码

点评

看吧,我就知道一定有人也被楼主的英文给坑了  发表于 2015-9-10 19:37
居然联网下载数据图……偶也是醉了  发表于 2015-9-8 10:46

评分

参与人数 2星屑 +77 收起 理由
英顺的马甲 + 11 你赢了...
天使喝可乐 + 66 打得不错

查看全部评分

LBQ 发表于 2015-9-6 20:10:29
本帖最后由 LBQ 于 2015-9-6 20:35 编辑

Mandelbrot Set


RUBY 代码复制
  1. #red method
  2. def red(i,j)
  3.   Kernel.const_set("W",1024);Kernel.const_set("H",1024)
  4.   0
  5. end
  6.  
  7. #green method
  8. def green(i,j)
  9.   @mc||=->i{[16*(i%15),8*(i%31),32*(i%7)]};@mi||=->v,b{x=y=0e0;c=0;while Math.hypot(x,y)<2&&c<255;x,y=(x**2-y**2+v),(2*x*y+b);c+=1;end;c};0
  10. end
  11.  
  12. #bule method
  13. def bule(i,j)
  14.         @mb||=->{m=Table.new W,H;W.times{|x|H.times{|y|o=(x-W*11/15.0)/W*3;l=(y-H/2.0)/H/3*10;m[x,y]=@mc[@mi[o,l]][0]}};m};@md||=@mb[];@md[i,j]
  15. end


跟开作弊没什么两样了233
懒得解决那个讨厌的const_set了就那样吧。
说实话那些codegolf.stackexchange上的这些功底也够深厚,我是别想有那种能力了。

这个代码基本上就是基于Rosetta Code上面的,我只是一直把这个改短罢了
(并且别人有数学功底的可以用这个弄出更加可怕的图形我是没那个能力了

点评

卧槽分形!  发表于 2015-9-7 19:11
分形图真的出来了,好评  发表于 2015-9-6 21:13

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

冷峻逸 发表于 2015-9-6 20:08:59
提示: 作者被禁止或删除 内容自动屏蔽
VIPArcher 发表于 2015-9-6 16:46:56
本帖最后由 VIPArcher 于 2015-9-6 16:50 编辑

RUBY 代码复制
  1. #red method
  2. def red(i,j)
  3. #Your code, do not exceed 140 characters in length.
  4.   return rand(256)
  5. end
  6. #green method
  7. def green(i,j)
  8. #Your code, do not exceed 140 characters in length.
  9.   return red(i,j)
  10. end
  11. #bule method
  12. def bule(i,j)
  13. #Your code, do not exceed 140 characters in length.
  14.   return red(i,j)
  15. end

点评

这个不就是电视机无信号的时候的雪花屏吗233  发表于 2015-9-6 17:29

评分

参与人数 1星屑 +20 收起 理由
DivineCrow + 20 可恶评分不能rand :P

查看全部评分

英顺的马甲 发表于 2015-9-6 16:11:04
先吐槽楼主的英文...
  1. #red method
  2. def red(i,j)
  3. srand(i ** j)
  4. rand(256)
  5. end
  6. #green method
  7. def green(i,j)
  8. srand(i + j)
  9. rand(256)
  10. end
  11. #bule method # 楼主的英文...
  12. def bule(i,j) # 楼主的英文...
  13. srand(i / 2 * j)
  14. return rand(256)
  15. end
复制代码

点评

随机在楼下  发表于 2015-9-6 16:47
本来就不是要随机==  发表于 2015-9-6 16:43
出了lattice structure,每一步都srand了,rand就没有啥随机性了貌似  发表于 2015-9-6 16:40
墨凌羽 发表于 2015-9-6 13:13:09
@刺夜之枪 任意文本编辑器应该都能打开 最简单是用notepad...不过要记得编码保存为utf-8
精灵使者 发表于 2015-9-6 09:46:37

代码如下:
  1. #red method
  2. def red(i,j)
  3. #Your code, do not exceed 140 characters in length.
  4.   return ((i+j) % 256)
  5. end
  6. #green method
  7. def green(i,j)
  8. #Your code, do not exceed 140 characters in length.
  9.         return ((j %128) + (i % 128))
  10. end
  11. #bule method
  12. def bule(i,j)
  13. #Your code, do not exceed 140 characters in length.
  14.         return ((i %128) + (j % 128))
  15. end
复制代码
LBQ 发表于 2015-9-6 02:58:34
本帖最后由 LBQ 于 2015-9-6 03:02 编辑

极其简易的Voronoi图
(直接运行代码会长度报错,不过测过了函数本身内部不超过140字符,包括函数的def green超过)
(严格意义上这个不算合法的代码·,改改应该行,不过那些打代码高尔夫的都不是省油的灯我也懒得继续改了._.)

RUBY 代码复制
  1. #red method
  2. def red(i,j)
  3.   alias r rand
  4.   w=h=1024
  5.   @b||=Array.new(100){[r(w),r(h),Array.new(3,r(256))]}
  6.   @p||=Array.new(3){Table.new(w,h)}
  7.   0
  8. end
  9.  
  10. #green method
  11. def green(i,j)
  12.   w=h=1024
  13.         @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}
  14.   @p[1][i,j]
  15. end
  16.  
  17. #bule method
  18. def bule(i,j)
  19.         w=h=1024
  20.         @p[2][i,j]
  21. end


PS:玩code golf需谨慎,参与者的那群人很多很可怕
(然后原来用c的感觉开发起来比用ruby会舒服很多233,ruby干这种事还是慢)

点评

这个不错,估计QQ电脑版客户端那个东西就是这么弄的。不过看到green里面的循环已经意识到效率会十分感人。  发表于 2015-9-6 08:34
LBQ
还想起来貌似这个版本有bug,不打算修了累了  发表于 2015-9-6 03:03
刺夜之枪 发表于 2015-9-6 01:23:24
本帖最后由 刺夜之枪 于 2015-9-5 12:25 编辑







↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
看了楼主帖子后
突然想到这个 2333333333333333
【转】

点评

QAQ我也要吃你的头像  发表于 2015-9-6 01:31
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 21:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表