乐趣区

敲代码无聊那是你没见过这些骚气高端的代码

很多人说程序员是码农,是字母的搬运工,一天天敲着重复的代码,十分的无趣。其实程序员的世界,从来是一个充满想象力的天堂。今天小易给大家看看几款程序员小伙伴们那些清奇的奇思妙想吧。

首先是“忧国忧民”的佛系代码
最后,如果大家如果在自学遇到困难,想找一个 C ++ 的学习环境,可以加入我们的 C ++ 学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题。

敲代码无聊?那是你没见过这些骚气高端的代码!
这个代码很巧妙地组成了一个佛的形象,作者还在其下题了一首颇为忧心的诗,要小编说,你有这写佛祖代码的功夫,还不如直接写个好看的代码哄女孩啊喂!

比起上面这位佛系的作者来说,下面的这个爱心的代码作者就很会来事了,何愁找不到女票是不是,用代码来表白,别出心裁呀是不是,屏幕前的程序员是不是有点心动咧。

敲代码无聊?那是你没见过这些骚气高端的代码!
接下来,就为大家分享几款比较正经的代码了。
通过计算代码本身的面积来计算圆周率的近似值这个代码来自世界混乱 C 代码大赛 International Obfuscated C Code ContestIOCCC 这个大赛的宗旨是在 C 语言本身可以执行的条件下看谁能写出最有创意的最让人难以理解的 C 语言代码代码的长度要求限制在 4kb 以内大赛的官方链接为 The International Obfuscated C Code Contest

第 23 届 IOCCC 竞赛已经在 2014 年 10 月 27 日结束但是我似乎找不到源代码我们来看看第 22 届 IOCCC 竞赛中的代码中又没有什么好玩的东西吧

Best Painting

敲代码无聊?那是你没见过这些骚气高端的代码!
Most Lazy SKLer Most lazy SKIer

敲代码无聊?那是你没见过这些骚气高端的代码!
Best Use of 1 Infinite Loop

Best use of 1 Infinite Loop

敲代码无聊?那是你没见过这些骚气高端的代码!
下面是以前一些比较有趣的代码

2012Most Elementray Use of C

Most elementary use of C

敲代码无聊?那是你没见过这些骚气高端的代码!
2012Most Functional Most functional

敲代码无聊?那是你没见过这些骚气高端的代码!
1998Best of Show

Carl Banks’ Blog: IOCCC Flight Simulator

敲代码无聊?那是你没见过这些骚气高端的代码!
接下来,再为大家分享几款视觉上的盛宴:

(原文出自:http://www.matrix67.com/blog/…)

Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推这么长的代码来生成一张图片。具体地说,参赛者需要用 C++ 语言编写 RD、GR、BL 三个函数,每个函数都不能超过 140 个字符。每个函数都会接到 i 和 j 两个整型参数(0 ≤ i, j ≤ 1023),然后需要返回一个 0 到 255 之间的整数,表示位于 (i, j) 的像素点的颜色值。举个例子,如果 RD(0, 0) 和 GR(0, 0) 返回的都是 0,但 BL(0, 0) 返回的是 255,那么图像的最左上角那个像素就是蓝色。

代码如下:
// NOTE: compile with g++ filename.cpp -std=c++11

include <iostream>

include <cmath>

include <cstdlib>

define DIM 1024

define DM1 (DIM-1)

define _sq(x) ((x)*(x)) // square

define _cb(x) abs((x)(x)(x)) // absolute value of cube

define _cr(x) (unsigned char)(pow((x),1.0/3.0)) // cube root

unsigned char GR(int,int);
unsigned char BL(int,int);
unsigned char RD(int i,int j){
// YOUR CODE HERE
}
unsigned char GR(int i,int j){
// YOUR CODE HERE
}
unsigned char BL(int i,int j){
// YOUR CODE HERE
}
void pixel_write(int,int);
FILE *fp;
int main(){
fp = fopen(“MathPic.ppm”,”wb”);
fprintf(fp, “P6 %d %d 255 “, DIM, DIM);
for(int j=0;j<DIM;j++)
for(int i=0;i<DIM;i++)
pixel_write(i,j);
fclose(fp);
return 0;
}
void pixel_write(int i, int j){
static unsigned char color[3];
color[0] = RD(i,j)&255;
color[1] = GR(i,j)&255;
color[2] = BL(i,j)&255;
fwrite(color, 1, 3, fp);
}
下面这张图片仍然出自 Martin Büttner 之手:
敲代码无聊?那是你没见过这些骚气高端的代码!
难以想象,Mandelbrot 分形图形居然可以只用这么一点代码画出:

unsigned char RD(int i,int j){
float x=0,y=0;int k;for(k=0;k++<256;){float a=xx-yy+(i-768.0)/512;y=2xy+(j-512.0)/512;x=a;if(xx+yy>4)break;}return log(k)*47;
}
unsigned char GR(int i,int j){
float x=0,y=0;int k;for(k=0;k++<256;){float a=xx-yy+(i-768.0)/512;y=2xy+(j-512.0)/512;x=a;if(xx+yy>4)break;}return log(k)*47;
}
unsigned char BL(int i,int j){
float x=0,y=0;int k;for(k=0;k++<256;){float a=xx-yy+(i-768.0)/512;y=2xy+(j-512.0)/512;x=a;if(xx+yy>4)break;}return 128-log(k)*23;
}
Manuel Kasten 也制作了一个 Mandelbrot 集的图片,与刚才不同的是,该图描绘的是 Mandelbrot 集在某处局部放大后的结果:

敲代码无聊?那是你没见过这些骚气高端的代码!
它的代码如下:

RD j

=0b=0cdn=0;

(=aa+d=bb<4&&n++<880)

{=2ab+j8e-9-645411;a=c-d+i8e-9+.356888;}

255*pown-80/800,3.);

}

GR j

=0b=0cdn=0;

(=aa+d=bb<4&&n++<880)

{=2ab+j8e-9-645411;a=c-d+i8e-9+.356888;}

255*pown-80/800,7);

}

BL j

=0b=0cdn=0;

(=aa+d=bb<4&&n++<880)

{=2ab+j8e-9-645411;a=c-d+i8e-9+.356888;}

255*pown-80/800,5);

}
这是来自 githubphagocyte 的作品:

敲代码无聊?那是你没见过这些骚气高端的代码!
它的代码如下:

RD j
=3/(j+99);
=j+sinii+_sqj-7005/100/DIM35s;
i+DIMs+y%2+intDIM2-s+y%2127;
}

GR j
=3/(j+99);
=j+sinii+_sqj-7005/100/DIM35s;
5i+DIMs+y%2+int5DIM2-s+y%2127;
}

BL j
=3/(j+99);
=j+sinii+_sqj-7005/100/DIM35s;
29i+DIMs+y%2+int29DIM2-s+y%2127;
}
这是来自 githubphagocyte 的另一个作品:

敲代码无聊?那是你没见过这些骚气高端的代码!
这是一张使用 diffusion-limited aggregation 模型得到的图片,程序运行起来要耗费不少时间。代码很有意思:巧妙地利用宏定义,打破了函数与函数之间的界限,三段代码的字数限制便能合在一起使用了。

unsigned char RD(int i,int j){

define D DIM

define M m(x+D+(d==0)-(d==2))%D

define R rand()%D

define B mx

return(i+j)?256-(BL(i,j))/2:0;
}
unsigned char GR(int i,int j){

define A static int mD,e,x,y,d,c[4],f,n;if(i+j<1){for(d=D*D;d;d–){md%D=d%6?0:rand()%2000?1:255;}for(n=1

return RD(i,j);
}
unsigned char BL(int i,int j){
A;n;n++){x=R;y=R;if(B==1){f=1;for(d=0;d<4;d++){c[d]=M;f=f<c[d]?c[d]:f;}if(f>2){B=f-1;}else{++e%=4;d=e;if(!c[e]){B=0;M=1;}}}}}return mi;
}
最后这张图来自 Eric Tressler

敲代码无聊?那是你没见过这些骚气高端的代码!
这是由 logistic 映射得到的 Feigenbaum 分岔图。和刚才一样,对应的代码也巧妙地利用了宏定义来节省字符:

RD j

define A float a=0bkrx

define B

define x>255?255x

define return

define D DIM

R BLj*D-/D;

}

GR j

define E DM1

define F static float

define G for

define H r=a16/D+24;x=1.0001b/D

R BLj*D-j/2/D;

}

BL j

F cD;if(i+j<1){A;B;G;a<D;a+=0.1){G b=0;b<D;b++){H;G k=0;k<D;k++){x=rx(1-x);if(k>D/2){e=a;o=(Ex);ce+=0.01;}}}}}R C(cj)i/D;

}
好了,看了这么多神奇的代码,相信总有一款可以吸引到你,只要 998,啊不是,代码再如何神气,也是由人来创造,正如同现实世界的高楼大厦是一砖一瓦铺就,各类代码语言的学习也是由平地起,自己的代码世界由自己构建装点,是繁是简均为所思,前期的知识累积阶段是会比较无聊,但是不经一番寒彻骨,哪得梅花扑鼻香,计算机语言之路远矣,虽千万人吾往矣!

敲代码无聊?那是你没见过这些骚气高端的代码!
敲代码无聊?那是你没见过这些骚气高端的代码!

退出移动版