第二十屆 IOCCC 結果出爐


「IOCCC」是什麼?他的全名是「The International Obfuscated C Code Contest」,也就是「國際 C 語言程式碼混淆大賽」的意思~官方網站是:http://www.ioccc.org/,在維基百科上也有它的條目。和一般寫程式時,希望把程式寫得漂亮、易懂不同,IOCCC 的目的,是希望大家可以寫出讓人難以理解的程式碼! XD

而他每一屆的主題和規則都不盡相同,以這次、第 20 屆(2011)來說,他的目標是:

  • 在規則下寫出最隱晦、混淆的 C 程式。
    To write the most Obscure/Obfuscated C program within the rules.
  • 以具用諷刺意味的方法,來顯示程式碼風格的重要性。
    To show the importance of programming style, in an ironic way.
  • 使用不常見的程式碼來操 C 編譯器。
    To stress C compilers with unusual code.
  • To illustrate some of the subtleties of the C language.
  • To provide a safe forum for poor C code.

(後面兩個不知道該怎麼翻譯了… @@)

而這一屆的得獎者呢,可以參考官方列表;而 Heresy 大概掃了一下他們的程式碼,抓了幾個 Heresy 覺得比較特別的出來:

Best of Show – Most Shrinkable

程式名稱「akari」,應該是…日文的「燈里」?程式的功能是一個支援三種檔案格式(Ascii Art、PGM、PPM)的影像的縮小工具,程式碼(檔案連結說明)本身,根本就是 Ascii Art(赤座燈里?)了…


Most artistic

Heresy 看不太懂他的說明,但是程式碼的部分…Heresy 覺得能把程式碼寫成這樣真的很厲害…


Best solved puzzle

這個程式基本上是根據根據縱軸和橫軸的一些資料,來畫出一張圖的程式(說明、似乎算是解謎遊戲);而實際上,他的程式碼本身,基本上就算是一個他自己的執行結果的展示(輸入範例檔)了!

 


Best self documenting program

某個程度上,超炫的計算機程式!居然直接用可以編譯的程式碼畫了一個計算機出來(說明)…


Most shiny

一個以非常短的程式碼,以不怎麼樣的效率寫出來的 Ray Tracing 程式(實際上是「sphere tracer」),他可以把輸入的文字,產生一張 3D 圖(說明);而程式碼的部分,本身也畫了一個曲面、還有對應的箭頭標示。 ^^"

不過,他的程式在 MSVC10 下要另外加上 M_PI 的定義才能正確編譯。

下面就是 Heresy 輸入「heresy」這個字所產生的圖了~


其他的得獎作品,還有以前的得獎作品,其實都有許多特別的程式!不過由於太多了,Heresy 基本上也沒有看完,有興趣的人可以自己看看。在 Heresy 來看,這邊真的是一些詭異 C 語言的奇技淫巧的濫用了…真要寫出這種程式,難度其實還真的比寫一個「好程式」來的高啊!

對「第二十屆 IOCCC 結果出爐」的想法

  1. […] 為了這類的需求,除了有人專門寫了「如何寫出無法維護的程式碼」這樣的文章(請參考《如何写出无法维护的代码》或《如何撰寫難以維護的程式碼》,有機會 Heresy 也想自己整理一下 :p);在國際上甚至還有「國際 C 語言程式碼混淆大賽」這種東西呢! […]

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.