مسابقه بین‌المللی کدنویسی مبهم به زبان سی

مسابقه بین‌المللی کدنویسی مبهم به زبان سی  یا به اختصار IOCCC یک مسابقه برنامه‌نویسی رایانه است که در آن هدف نوشتن خلاقانه‌ترین کد به زبان سی و به شکلی مبهم و نامفهوم است. این مسابقه از سال ۱۹۸۴ تا ۱۹۹۶ به شکل سالانه برگزار شد و پس از آن هم در سال‌های ۱۹۹۸، ۲۰۰۰، ۲۰۰۱، ۲۰۰۴، ۲۰۰۵، ۲۰۰۶، ۲۰۱۱، و ۲۰۱۲ برگزار شد. این مسابقه به صورت «جشنواره ابهام سینتکسی سی» تشریح شده است. برنده هجدهمین دوره و نوزدهمین دوره که در سال ۲۰۰۵ و ۲۰۰۶ برگزار شده بودند، در سال ۲۰۱۱ اعلام شد. تا قبل از سال ۲۰۰۴، کدهای نامزد در مسابقه به وسیله ایمیل ارسال می‌شدند، در سال ۲۰۰۴ که هفدهمین دوره مسابقات برگزار شد، کدها از طریق یک رابط مبتنی بر وب فرستاده شدند. نامزدها به شکل ناشناس توسط یک هیئت داوری بررسی می‌شوند. فرایند داوری در رهنمودهای مسابقه مستندسازی شده است و از دور حذفی تشکیل می‌شود. مرسوم است که هیچ اطلاعاتی در مورد تعداد شرکت‌کنندگان در مسابقه منتشر نشود. برنده‌ها در چندین دسته مختلف اعلام می‌شوند، همانند «بهترین سوءاستفاده از پیش‌پردازنده سی» یا «نامنظم‌ترین رفتار» یا همچنین «جالب‌ترین خروجی» و سپس برنده‌ها در وب‌سایت رسمی مسابقه اعلام می‌شوند.

 مثال‌ها 
کد زیر یکی از کدهای شرکت‌کننده در سال ۱۹۸۸ بود. این کد با نگاه کردن به مساحت خودش، عدد پی را محاسبه می‌کند.5th International Obfuscated C Code Contest 1988  (westley.c). IOCCC.
#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_
}
برای کامپایل کد بالا، باید دستور زیر اجرا شود:

gcc -traditional-cpp -o r r.c or gcc -E r.c | sed 's/- -/--/g' > r2.c ; gcc -o r2 r2.c

مثال پیش رو یک شبیه‌ساز پرواز است که برنده سال ۱۹۹۸ بود.
#include                                     <math.h>
#include                                   <sys/time.h>
#include                                   <X11/Xlib.h>
#include                                  <X11/keysym.h>
                                          double L ,o ,P
                                         ,_=dt,T,Z,D=1,d,
                                         s[999],E,h= 8,I,
                                         J,K,w[999],M,m,O
                                        ,n[999],j=33e-3,i=
                                        1E3,r,t, u,v ,W,S=
                                        74.5,l=221,X=7.26,
                                        a,B,A=32.2,c, F,H;
                                        int N,q, C, y,p,U;
                                       Window z; char f[52]
                                    ; GC k; main(){ Display*e=
 XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
 *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                                         (&z.xkey,0))-IT?
                                         N-LT? UP-N?& E:&
                                         J:& u: &h); --*(
                                         DN -N? N-DT ?N==
                                         RT?&u: & W:&h:&J
                                          ); } m=15*F/l;
                                          c+=(I=M/ l,l*H
                                          +I*M+a*X)*_; H
                                          =A*r+v*X-F*l+(
                                          E=.1+X*4.9/l,t
                                          =T*m/32-I*T/24
                                           )/S; K=F*M+(
                                           h* 1e4/l-(T+
                                           E*5*T*E)/3e2
                                           )/S-X*d-B*A;
                                           a=2.63 /l*d;
                                           X+=( d*l-T/S
                                            *(.19*E +a
                                            *.64+J/1e3
                                            )-M* v +A*
                                            Z)*_; l +=
                                            K *_; W=d;
                                            sprintf(f,
                                            "%5d  %3d"
                                            "%7d",p =l
                                           /1.7,(C=9E3+
                              O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                             X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                             *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                             179*v)/2312; select(p=0,0,0,0,&G); v-=(
                              W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                               )/107e2)*_; D=cos(o); E=sin(o); } }

برنامه بالا باید با دستور زیر کامپایل شود:
cc banks.c -o banks -DIT=XK_Page_Up -DDT=XK_Page_Down \
	-DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \
	-DCS=XK_Return -Ddt=0.02 -lm -lX11 -L/usr/X11R6/lib

 منابع 



رده:جایزه‌های طنز و طعنه‌آمیز
رده:رویدادهای بنیان‌گذاری‌شده در ۱۹۸۴ (میلادی)
رده:زبان برنامه‌نویسی سی
رده:مبهم‌سازی
رده:مسابقات برنامه‌نویسی
رده:شوخی‌های رایانه