第29届国际C语言混乱代码大赛:参赛作品数量质量双高,亮点多多!
第29届国际C语言混乱代码大赛资讯
2025年举办了第29届国际C语言混乱代码大赛(IOCCC)。这里提供2025年IOCCC获奖作品的链接,查看每个获奖作品的 `index.html` 网页,能获取编译和运行获奖程序所需的大部分信息,还能查看获奖的源代码、作者备注。也可下载本年度所有获奖作品,文件格式为压缩包。
比赛总体评价
第29届IOCCC(IOCCC29)参赛作品的数量和质量都接近历史最高水平。有人认为第28届IOCCC(IOCCC28)吸引创纪录数量参赛作品,是因经历4年停赛,作者有更多时间完善作品,使得参赛作品质量高于往常。IOCCC29是2020 - 2024年停赛之后的第二届比赛,其参赛作品数量与上一届相近,且整体参赛作品质量依然很高。那么,参赛作品数量的增加和质量的提升,是否是由于网站设计的改进、社交媒体影响力的扩大、作者借鉴过往获奖作品的创意等因素呢?
从IOCCC28结束开始,比赛的各项流程,包括停止接收新参赛作品、评审过程、评选获奖作品、更新网站以及在相关频道举办直播活动等,都进行了详细记录,这让IOCCC的运营得到了整体提升。IOCCC29获奖作品在相关YouTube频道展示后的几天内,主活动的录像将被分割成多个独立片段,随后,每个获奖作品的 `index.html` 页面顶部的新“颁奖展示”部分将添加指向相应YouTube片段的链接。
趣味挑战信息
今年的获奖作品比赛增加了趣味挑战,相关内容在“评委点评”部分。弄清楚某个获奖作品的功能后,鼓励尝试完成趣味挑战。有些挑战相对容易,有些则较难。在某些情况下,需要创建 `prog.c` 或相关文件的替代版本;在另一些情况下,需要对某些内容进行解释。
如果趣味挑战仍在进行中(查看对应获奖作品的“趣味挑战”部分),可以考虑提交GitHub拉取请求来参与。如果趣味挑战已经结束,但认为自己有更好的解决方案,也可考虑提交GitHub拉取请求。若IOCCC评委认为方案更优,会予以考虑。
比赛规则和指南
本届比赛生效的IOCCC规则和指南的最终版本如下:2025规则,版本29.15 2025 - 12 - 02;2025指南,版本29.08 2025 - 12 - 02。IOCCC29的规则和指南相较于以往比赛有了大幅重写,这得益于许多志愿者的贡献,他们为IOCCC评委提供了有用的编辑建议、文本改写、内容整合以及整体的组织优化。
展望下一届比赛
计划在2026年底开启第30届IOCCC(IOCCC30),比赛时长与本届相近,预计在2027年第一季度末结束。在开启IOCCC30的过程中,将像结束IOCCC29时一样,对相关流程进行内部记录。
在IOCCC29获奖作品公布约两到三周后,处理完一些针对2025目录树的早期拉取请求后,IOCCC评委计划进行一次IOCCC休假。原本打算在IOCCC28公布获奖名单后进行IOCCC休假,但处理相关仓库的bug修复和功能增强工作花费了大量时间,等到该仓库稳定时,又到了开启IOCCC29的时间。因此,这次计划在IOCCC29结束后的IOCCC休假结束后,再处理相关仓库的拉取请求。
部分获奖作品点评
在为进入最后一轮评审的参赛作品撰写潜在报告时,有一些参赛作品在最后一轮被搁置,对其余的许多参赛作品有了更深的理解和欣赏。
虽然获奖作品的作者来自过往获奖作者所在地区,但IOCCC29有一位来自新地区的作者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。
IOCCC29中值得关注和令人瞩目的获奖作品包括但不限于:2025/cable - 次leq计算机;2025/cesmoak - 黑洞穿孔卡片Fortran程序;2025/endoh3 - 补丁/差异自生成程序;2025/jhshrvdp - 类Rogue游戏;2025/jingp49 - 神秘博士序列;2025/ncw1 - GameBoy模拟器;2025/tompng - 海洋音效生成器;2025/uellenberg - 自生成乒乓程序;2025/yang2 - Zoltraak编码。这些只是IOCCC29众多优秀获奖作品中的一部分,一定要去看看其他作品!
部分未获奖参赛作品点评
有不少优秀的参赛作品未能最终获奖。非常感谢每位作者为参赛作品付出的努力,但不能仅仅依据努力程度来颁奖。收到了许多很棒的参赛作品,但它们未能成为获奖作品。如果为IOCCC29提交的作品未获奖,可以考虑打磨代码,在IOCCC30中再次尝试。有趣的是,IOCCC29的多位获奖者实际上是对之前未获奖作品进行改进后的成果。
对今年未获奖作者的鼓励
很多向IOCCC提交作品的作者为今年的比赛付出了巨大努力,但不能给每个人都颁奖,因为这会削弱认为最优秀、最值得获奖的作品的价值。有时候,进入最后一轮的参赛作品可能已经足够优秀,但可能会被一个类似但稍好一些的作品击败。如果认为自己的作品遇到了这种情况,可以考虑提交一个改进版本参加下一届IOCCC。请不要放弃希望!有些参赛作品经过多次修改后最终成为了获奖作品。也可以尝试在下一届IOCCC中提交不同类型的作品。如果不打算改进并重新提交未获奖的作品参加下一届IOCCC,也可以选择将其发布。
关于编译和运行获奖作品
有些C编译器的表现可能不尽如人意。如果编译器效果不佳,可以尝试使用更新版本的clang和/或gcc进行编译。
如果在编译和/或运行获奖作品时遇到问题,可以查看以下常见问题解答:编译IOCCC参赛作品;IOCCC参赛作品的依赖项;编译参赛作品时遇到的问题;运行IOCCC参赛作品。关于如何提交修复方案的更多信息,请查看以下常见问题解答:如何提交修复方案 - 如何提交对参赛作品的修复;更新作者信息 - 如何更正或更新IOCCC作者的信息。
更多信息
可了解报告IOCCC网站问题、提交对IOCCC网站的修复、如何联系IOCCC、IOCCC常见问题解答等内容。
2025年第29届IOCCC获奖作品
可下载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奖。
