code1024编程画图游戏
code1024 是一个有意思的 编程画图 游戏,起源是这个:
http://codegolf.stackexchange.com/questions/35569/tweetable-mathematical-art
这里稍微做了一下扩展,放松了代码量限制和更多编程语言的支持。
规则:
目标:
通过实现 模版(支持多种语言,见 /tpl 目录) 中的一个函数 get_color_at(x, y) ,在一个 1024x1024 的画布上画出尽可能 “有意思” 的图案。
参数:
int x, int y ,取值均为 0 - 1023,对应画布上坐标点,左上角为起始点 (0,0)
返回:
int r, int g, int b, int alpha, 对应颜色的 RGBA 分量,均为 0 - 255。
注意:各语言中 alpha 分量定义可能不同,由 模版 统一转换为: 0 - 255,值越大越透明。
要求:
只能编辑 模版 中 get_color_at(x, y) 函数体内 // {{code start}} - // {{code end}} 间的代码;
代码总字符数不能超过 1024 个;
本程序主要是汇集各种语言的 “模板”和 升级新的规则玩法;并提供一套网站代码进行在线展示。
一些代码实例:
Color Cloths
var d=1024, s=3/(y+99), p=(y+Math.sin((x*x+(y-700)^2)/100/d)*35)*s; r=(parseInt((x+d)*s+p)%2+parseInt((d*2-x)*s+p)%2)*127; g=(parseInt(5*((x+d)*s+p))%2+parseInt(5*((d*2-x)*s+p))%2)*127; b=(parseInt(5*((x+d)*s+p))%2+parseInt(29*((d*2-x)*s+p))%2)*127;
Mandelbrot 2
var a=0,b=0,d,n=0; for(;a*a+(d=b*b)<4&&n++<8192;b=2*a*b+y/5e4+.06,a=a*a-d+x/5e4+.34); r=n/4; g=2*r; b=4*r;
(更多示例或投递见: https://dingusxp.com/app/draw1024/list )
评论