断了好久的IOCCC大赛貌似今年终于又开始大放异彩了,C系程序员们真是一年比一年奇葩了啊(= =|||)
IOCCC大赛(世界C语言混乱化大赛)的宗旨是让程序员写出最“难懂”,“诡异”或是让人捉摸不透的艺术性代码。单程序被限定在4KB以内,要以视觉上或理解上最坑的方式作出有功能的代码。
之前坑了几年,今年打开了获奖名单,发现第一位是一个叫做Akari的投稿,作者是Don Hsi-Yun Yang,然后看着这名字和作品名字,貌似有印象之前见过这位的另一个获奖神作,把校验码放到文件本身的。
好奇之下代开了源码和说明,然后,请见上图。当然,IOCCC的要求是,除了“艺术性(所谓‘混乱’的代码排版)”以外,程序还要有足够靠谱的功能性。这个程序获得了最佳展示奖——最能“收缩”。
程序的本体是一个图片压缩器,可以将 Pixmap和ASCII字符画的图片进行向下压缩大小(缩放),当然了,这仅仅是第一层。你会发现,程序本身就是一幅ASCII字符画,而把程序的源码通过编译版的程序之后,则会获得另一个缩小了的源码。令人吃惊的是,这个缩小了的源码,依然是有效可编译的。编译后又是一个文字过滤器,可以对文字进行rot13“加密”。当然作者说,这并不是终极,再把缩小后的ASCII程序再缩小一次,将获得第三个程序源码,继续缩小则会获得第四个程序源码。后两个程序源码编译运行后,会分别在屏幕上输出文字。
当然,这个颇有存在感的二次元向作品以外,还有很多神奇的优秀作品。比如:世界上最“无需说明文档”的科学计算器。
会让你吃惊它居然是拿C语言完成的,而且完全不会出现编译警告。
投稿作品从游戏到算法,从“绘图”到“计算”,涵盖了各种领域。而代码的样式更是多种多样(单行程序、反语法程序等)。如果你觉得你的C语言程度足够好,快去看看这些奇葩的程序吧。
这不就是魔术吗?我建议改成C语言魔术比赛.
#include "stdio.h"
#define while if
#define if while
//..
void main()
{
while(true)
{
printf("!");
}
if(true)
{
printf(".");
}
}
这样原理?
差不多。。。,但是比这个要坑一些。。。
反语法程序..是指什么?
有一年的大赛里面有一个人把所有的 while/for/if/else/&&/|| 等等全都重新定义了,然后产生了一个看起来什么都不做的但是语法上合格的程序,实际上跑起来完全不是那回事。。。所谓“看完觉得白学C了”
听说过这个 貌似挺好玩的 不过 QAQ 咱是css html php啊
偶尔玩玩底层语言(虽然C也是高级语言)也挺好=w=。