第29届国际C语言混乱代码大赛(IOCCC)2025年获奖作品公布
- #IOCCC
- #C语言
- #代码混淆
- #编程竞赛
- #开源
第29届国际C语言混乱代码大赛(IOCCC)2025年获奖作品
欢迎来到第29届IOCCC!以下是2025年获奖作品的入口。查看每个获奖作品目录下的 index.html 页面,它们包含了编译和运行所需的大部分信息。仔细阅读获奖源代码,尝试理解其工作原理。也可以查看作者的注释以获取更多细节。您还可以下载本年度所有获奖作品的压缩包。
比赛总体评价
第29届IOCCC的提交数量和质量均接近历史最高水平。第28届比赛因时隔四年重新举办,吸引了创纪录的提交数量,作者们得以打磨作品,提交质量也高于往常。第29届是2020-2024年休赛期后的连续第二届比赛,提交数量与去年持平,整体质量依然很高。这或许得益于网站设计的改进、社交媒体影响力的增加、作者们借鉴以往获奖作品创意等因素。
从第28届比赛结束开始,我们详细记录了关闭提交、评审、选择获奖作品、更新网站以及制作“Our Favorite Universe”直播节目等流程。这些文档虽然耗费了额外时间和精力,但整体上提升了IOCCC的运作水平。
在第29届获奖作品在“Our Favorite Universe”YouTube频道上展示后的几天内,主节目的录像将被分割成独立片段。每个获奖作品的 index.html 页面顶部将新增“奖项展示”部分,并链接到对应的YouTube片段。
趣味挑战
今年我们在“评委评语”部分为获奖作品增添了趣味挑战。在理解某个作品的功能后,我们鼓励您尝试这些挑战。有些挑战相对简单,有些则需要您创建 prog.c 或相关文件的替代版本,或者对某些内容进行解释。如果某个挑战仍处于开放状态(查看该获奖作品下的“趣味挑战”部分),欢迎您通过GitHub提交拉取请求。如果挑战已关闭,但您认为自己有更好的解决方案,同样欢迎提交。如果IOCCC评委认为您的方案更优,我们会予以考虑。如果您认为自己对获奖作品的挑战有更好的改进,也请提交拉取请求。
本届规则与指南
本届比赛生效的IOCCC规则和指南最终版本为:
- 2025年规则 版本29.15(2025-12-02)
- 2025年指南 版本29.08(2025-12-02)
第29届的规则和指南相比以往有重大改写,这得益于众多志愿者的编辑、重写、合并以及整体组织改进。
展望下一届比赛
我们计划在2026年底开放第30届IOCCC,比赛持续时间与本届类似,预计在2027年第一季度末关闭。我们将像第29届关闭时那样,内部记录所有流程。
在第29届获奖作品发布后约两到三周,处理完针对2025目录树的早期拉取请求后,IOCCC评委将进入“IOCCC假期”。我们原本打算在第28届获奖者公布后休假,但修复 mkiocccentry 仓库的bug和增强功能耗费了大量时间,以至于该仓库稳定后第29届已经开始。因此,这次我们计划在完成第29届后的IOCCC假期之后,再处理任何 mkiocccentry 仓库的拉取请求。
部分获奖作品点评
在准备进入最终评审轮的候选作品的评论时,有几个作品在最后一轮被搁置。我们对其余作品有了更深层次的欣赏。本届获奖作者来自以往获奖者的所在地,但有一位作者 jingp49 来自新地点:台湾。
本届比赛出现了三次“帽子戏法”(同一作者三个作品获奖):
- Yusuke Endoh: 2025/endoh1, 2025/endoh2, 2025/endoh3
- Nick Craig-Wood: 2025/ncw1, 2025/ncw2, 2025/ncw3
- Don Yang: 2025/yang1, 2025/yang2, 2025/yang3
第29届值得关注的作品包括(但不限于):
- 2025/cable - Subleq计算机
- 2025/cesmoak - 黑洞打孔卡Fortran
- 2025/endoh3 - patch/diff quine
- 2025/jhshrvdp - 类rogue游戏
- 2025/jingp49 - 神秘博士序列
- 2025/ncw1 - GameBoy模拟器
- 2025/tompng - 海洋声音生成器
- 2025/uellenberg - Quine乒乓球
- 2025/yang2 - Zoltraak编码
这只是众多精彩作品中的一部分,请务必查看全部!
未获奖作品的点评
正如上文所述,有不少优秀的作品未能进入最终名单。我们非常感谢每位作者付出的努力,但遗憾无法仅凭努力颁奖。如果您的作品没有获奖,请考虑打磨代码,在第30届再次尝试。有趣的是,第29届有不止一个获奖作品实际上是之前未获奖作品的改进版本。
对未获奖作者的鼓励
我们知道许多提交者付出了巨大努力。我们无法给每个人颁奖,那会削弱我们认为最好的作品的价值。有时,进入最终轮的作品足以获奖,但被类似但稍优的作品击败。如果您认为您的作品遇到了这种情况,请考虑提交增强版。请不要放弃希望!有些作品经过多次修改才最终获奖。您也可以尝试在第30届提交完全不同类型的作品。如果您不打算改进并重新提交,欢迎您自行发布。
编译和运行获奖作品
有些C编译器可能不够理想。如果您的编译器工作不正常,可以尝试使用更新的clang或gcc。如果遇到编译或运行问题,请查阅FAQ:
- 编译IOCCC作品
- IOCCC作品依赖
- 编译问题
- 运行IOCCC作品
关于如何提交修复,请查阅FAQ:
- 如何提交修复
- 更新作者信息
更多信息:
- 报告IOCCC网站问题
- 提交修复
- 联系IOCCC
- IOCCC FAQ
- www.ioccc.org
2025年获奖作品列表
您可以下载2025年所有获奖作品的压缩包。
- 2025/ayu - IMO奖
- 2025/cable - 最佳模拟器(想象)
- 2025/cesmoak - 复古空间奖
- 2025/diels-grabsch - 最佳单行代码
- 2025/dogon - 恒定一致奖
- 2025/endoh1 - 最可能令人眼花缭乱
- 2025/endoh2 - 最可能令人震惊
- 2025/endoh3 - 最具韧性
- 2025/ferguson - 相反奖
- 2025/howe - 最可能入侵
- 2025/jhshrvdp - 最可能传送
- 2025/jingp49 - 谁赢了奖
- 2025/kurdyukov - 最可能计数
- 2025/mattpep - 最混乱选项
- 2025/ncw1 - 最佳真实模拟器
- 2025/ncw2 - 最佳分数模拟器
- 2025/ncw3 - 最佳Unicode使用
- 2025/tompng - 最舒缓
- 2025/uellenberg - 乒乓球奖
- 2025/yang1 - 复合奖
- 2025/yang2 - 最神奇单词
- 2025/yang3 - INABIAF奖
版权所有 © 2025-2026 Landon Curt Noll: 保留部分权利。本作品由Landon Curt Noll根据CC BY-SA 4.0许可。使用前请仔细阅读CC BY-SA 4.0法律代码。
评论