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

Project1

 找回密码
 注册会员
搜索
查看: 3928|回复: 14
打印 上一主题 下一主题

[论坛活动] 【伪·论坛活动】Code Art

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
跳转到指定楼层
1
发表于 2015-9-5 21:23:25 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 墨凌羽 于 2015-9-6 13:39 编辑

前不久看到一个很有意思的活动。是Kyle McCormick在StackExchange上发起的一个叫做Tweetable Mathematical Art的比赛。参赛者用三条推特那么长的代码来生成一张图片。具体是参赛者用c++编写rd、gr、bl三个函数,每个函数接受i、j两个参数并返回一个在0~255之间的数字,分别代表在坐标i,j处的点的颜色的RGB值。每个函数都不能超过140个字符。i和j的区间是0~1023。
感觉这个会很有趣,就想在RM里玩玩。
这是测试程序: Code Art.rar (1.23 MB, 下载次数: 95)
主体代码已经写好,需要参加活动的人员自己编写data/scripts文件夹内的red.rb/green.rb/bule.rb三个文件里的函数。
然后运行程序会自动在output文件夹内输出图片。并附带相应的三个函数的代码。
每个参加活动的都需要下载附件编写函数,然后把生成的图片和相应的代码贴出来。
嗯,差不多这样。一楼是我自己的一张。【特别特别的简单。。。ORZ坐等被各位大触秀一脸
大概就是这样?活动奖励什么的貌似是都没有【前不久在PM里把经验都氪光了。。。现在连糖都赛不了ORZ


9.6更新:
1.。rb文件用任意文本编辑器都可以打开。嗯,最简单是用记事本。
2.上边的那个工程不要放在带中文的路径里
3.bulebule!窝就是喜欢bule肿么样,哼~【好吧,其实是把blue给打错了。对,我英语就是这么渣ORZ

点评

现在看到RB第一反应居然不是ruby代码文件233,利用记事本打开  发表于 2015-9-6 13:51
RB 文件怎么打开呀  发表于 2015-9-6 12:16
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21105
在线时间
9346 小时
注册时间
2012-6-19
帖子
7107

开拓者短篇九导演组冠军

15
发表于 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
复制代码

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
14
发表于 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上面的,我只是一直把这个改短罢了
(并且别人有数学功底的可以用这个弄出更加可怕的图形我是没那个能力了

评分

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

查看全部评分

『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止访问)

梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
帖子
3600
13
发表于 2015-9-6 20:08:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
9992
在线时间
5019 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

12
发表于 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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
11
发表于 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
复制代码
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
10
 楼主| 发表于 2015-9-6 13:13:09 | 只看该作者
@刺夜之枪 任意文本编辑器应该都能打开 最简单是用notepad...不过要记得编码保存为utf-8
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

9
发表于 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
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
8
发表于 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
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

7
发表于 2015-9-6 01:23:24 | 只看该作者
本帖最后由 刺夜之枪 于 2015-9-5 12:25 编辑







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

点评

QAQ我也要吃你的头像  发表于 2015-9-6 01:31

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-6-5 10:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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