مسابقة دولية لشفرة C المبهمة
مسابقة البرمجة بلغة C المُبهمة الدولية ( IOCCC اختصارًا ) هي مسابقة برمجة حاسوبية تُقام سنويًا (كلما أمكن) لأفضل كود مكتوب بلغة C يتميز بأعلى درجات التبهم الإبداعي . ويُعرّف هذا الحدث بأنه "احتفاءٌ بغموض بنية لغة C". [ 1 ] وقد أُعلن عن الكود الفائز في الدورة الثامنة والعشرين من المسابقة، التي عُقدت في عامي 2025/2026، [ 2 ] عبر بث مباشر في 6 يونيو 2026 [ 3 ] .
تُقيّم المشاركات بشكلٍ سريّ من قِبل المحكّمين الحاليين، ليونيد أ. بروخيس ولاندون كورت نول . تُوثّق عملية التحكيم في قسم الأسئلة الشائعة للمسابقة [ 4 ] ، وتتألف من جولات إقصائية. وكما جرت العادة، لا تُعلن أي معلومات عن العدد الإجمالي للمشاركات في كل مسابقة. تُمنح المشاركات الفائزة جائزةً في فئةٍ ما، مثل "أسوأ إساءة استخدام لمعالج C المسبق " أو "أكثر سلوكٍ غير متوقع"، ثم يُعلن عنها على الموقع الإلكتروني الرسمي لـ IOCCC. وتنص المسابقة على أن الإعلان على موقع IOCCC الإلكتروني هو مكافأة الفوز (بالإضافة إلى حق التباهي).
أقيمت المسابقات السابقة في الأعوام 1984-1996، 1998، 2000، 2001، 2004-2006، 2011-2015، 2018-2020، و2024-2025.
تاريخ
بدأ لاندون كورت نول ولاري باسيل مسابقة IOCCC عام 1984 أثناء عملهما في مجموعة نقل برامج Genix التابعة لشركة ناشيونال سيميكوندكتور. انبثقت فكرة المسابقة بعد أن تبادلا ملاحظاتهما حول بعض البرامج المكتوبة بشكل رديء والتي كان عليهما إصلاحها، ولا سيما برنامج Bourne shell الذي استخدم وحدات ماكرو لمحاكاة صيغة ALGOL 68 ، ونسخة معيبة من برنامج finger لنظام BSD. [ 5 ] وكانت المسابقة نفسها موضوع سؤال في مسابقة Computer Bowl عام 1993. [ 6 ] وبعد توقف دام خمس سنوات بدءًا من عام 2006، عادت المسابقة عام 2011. [ 7 ]
بالمقارنة مع مسابقات البرمجة الأخرى، وصف مايكل سوين ، محرر مجلة دكتور دوبز ، مسابقة IOCCC بأنها "ليست جادة للغاية" . [ 8 ]
يقول دون ليبس في كتابه [ 9 ] :
...سيُجبرونك بلا شك على توسيع آفاقك الفكرية عند دراستهم. وبصراحة، بعضها جنوني تمامًا ولا يصلح إلا للسخرية والاستهزاء.
قواعد
تختلف القواعد [ 10 ] من عام لآخر، وتُنشر مع مجموعة من الإرشادات [ 11 ] التي تسعى إلى توضيحها بشكل أكبر. وهي منشورة على موقع IOCCC الإلكتروني. إضافةً إلى ذلك، تُنشر جميع المواد، بما في ذلك المشاركات الفائزة، بموجب ترخيص Creative Commons BY-SA 4.0 الدولي. [ 12 ]
يُعدّ اختراق قواعد المسابقة تقليداً راسخاً.
غالبًا ما تُصاغ القواعد عمدًا مع وجود ثغرات تُشجع المتسابقين على اكتشافها واستغلالها. [ 11 ] وقد تؤدي المشاركات التي تستغل هذه الثغرات إلى تعديل قواعد مسابقة العام التالي. [ 11 ]
أهم القواعد هي القاعدة 2أ و2ب (القاعدة 1 سابقًا)، والتي تحدد الحد الأقصى لحجم الملف المصدر، الإجمالي والصافي. خلال فترة المسابقة، تطورت القاعدة 2 [ 13 ] لتستوعب الزيادات الطفيفة في حدود حجم الملف المصدر. بدأت مسابقة عام 1984 بحد أقصى لحجم الملف المصدر يبلغ 512 بايت، ثم ارتفع عدة مرات ليصل إلى 1536 بايت في عام 1991. في عام 1992، تم تقسيم القاعدة 2 للتمييز بين الحد الأقصى للحجم الإجمالي والحد الأقصى للحجم مع تجاهل المسافات البيضاء والفواصل المنقوطة في ظروف معينة. في البداية، وللاستفادة القصوى من المساحة المتاحة، كان يتم حذف المسافات البيضاء، مما ينتج عنه غالبًا كتلة نصية مضغوطة يصعب قراءتها، ولكن لم يكن لها فائدة تُذكر بعد معالجتها بواسطة أداة "التنسيق" المكتوبة بلغة C، والتي كان يستخدمها الحكام كجزء من عملية التقييم. في عام ١٩٩٢، اعتقد الحكام أن هذا النوع من التمويه قد استُنفد [ ١٤ ]، ورغبوا في تشجيع المشاركين على استكشاف طرق أخرى لتنسيق الكود، مثل صورة ASCII مستوحاة من المشاركة، أو ببساطة استخدام تنسيق C التقليدي. وفي الفترة ما بين ٢٠١٢ و٢٠١٣، اعتمدت المسابقة أداة iocccsize(1) [ ١٥ ] ، وتم تعديلها لمساعدة كل من المتسابقين والحكام على تطبيق خوارزمية العد الخاصة بالقاعدة ٢ب.
تم استخدام أساليب التمويه
غالباً ما تستخدم المدخلات حيلًا غريبة أو غير عادية، مثل استخدام المعالج المسبق للغة C للقيام بأشياء لم يتم تصميمه للقيام بها [ أ ] أو تجنب البنى الشائعة الاستخدام في لغة البرمجة C لصالح طرق أكثر غموضًا لتحقيق نفس الشيء.
تضمنت المساهمات شفرة مصدرية مُنسقة لتشبه الصور والنصوص، وما إلى ذلك، على غرار فن ASCII ، وإعادة تعريفات المعالج المسبق لجعل الشفرة أكثر صعوبة في القراءة، وشفرة ذاتية التعديل . في عدة سنوات، تم تقديم مشاركة تطلبت تعريفًا جديدًا لبعض القواعد للعام التالي، وهو ما يُعتبر شرفًا رفيعًا. ومن الأمثلة على ذلك أقصر برنامج ذاتي التكاثر في العالم . كانت المشاركة عبارة عن برنامج مصمم لإخراج شفرته المصدرية الخاصة، والتي كانت تحتوي على صفر بايت من الشفرة المصدرية. عند تشغيل البرنامج، كان يطبع صفر بايت، وهو ما يعادل شفرته المصدرية. [ 18 ]
في محاولةٍ للوصول إلى أقصى درجات التعتيم، أنتج المتسابقون برامجَ تتجاوز حدود معايير لغة C، أو تُنتج بنياتٍ تُفعِّل مساراتٍ برمجيةً نادرة الاستخدام في المُترجمات. ونتيجةً لذلك، قد لا تُترجم بعض البرامج المُشاركة سابقًا مباشرةً في مُترجمٍ حديث ، وقد يتسبب بعضها في أعطالٍ.
خلال فترة التوقف بين عامي 2020 و2024 (عملية دمج الفروع الكبرى [ 19 ] )، تم تحديث العديد من البرامج الفائزة لتتوافق مع المترجمات الحديثة، على سبيل المثال، تحويلها من لغة K&R C إلى صيغة C89 على الأقل، باستثناء الحالات التي كان من شأن ذلك أن يُخلّ بالتشفير (لا تزال النسخ الأصلية متاحة للعرض). لذا، مع إصدار 2024، يُفترض أن يكون من الممكن تشغيل جميع البرامج. يوثّق الموقع الإلكتروني هذه البرامج ويدعو مبرمجي لغة C إلى إصلاح البرامج الفائزة التي لا تزال بها مشاكل عالقة. [ 20 ] [ 21 ]
أمثلة
في حدود حجم الكود الذي لا يتجاوز بضعة كيلوبايتات، تمكن المتسابقون من القيام بأشياء معقدة - فقد أنتج الفائز في عام 2004 نظام تشغيل . [ 22 ]
تُحذّر المترجمات الحديثة، المستفيدة من الدروس المستفادة من المشاركات في المسابقات، المستخدمين من وجود مشاكل في الشيفرة المصدرية. قد تحتاج إلى كتم هذه التحذيرات لتجميع المشاركات في المسابقات.
توليدو نانو تشيس
توليدو نانو تشيس هو محرك شطرنج من ابتكار مطور البرمجيات المكسيكي أوسكار توليدو غوتيريز، الفائز خمس مرات ببطولة IOCCC. ووفقًا لقواعد IOCCC، يبلغ طول البرنامج الأصلي 1963 حرفًا. ويدّعي المؤلف أنه أصغر برنامج شطرنج في العالم مكتوب بلغة C.
يتوفر الكود المصدري لبرنامج توليدو نانو تشيس ومحركات أخرى. [ 23 ] ولأن برنامج توليدو نانو تشيس مبني على مشاركة توليدو الفائزة في بطولة IOCCC18، [ 24 ] فهو مُشفر بشكل كبير . [ 25 ]
في 2 فبراير 2014، نشر المؤلف كتاب " توليدو نانو تشيس: الشفرة المصدرية المعلقة" ، والذي يحتوي على الشفرة المصدرية المعلقة بالكامل. [ 26 ]
اعتبارًا من 7 فبراير 2010، يبدو أنه أحد محركي شطرنج فقط مكتوبين بلغة C بحجم أقل من 2 كيلوبايت، قادرين على لعب جميع حركات الشطرنج القانونية، إلى جانب محرك Micro-Max الذي طوره الفيزيائي الهولندي إتش جي مولر. في عام 2014، تم تجاوز حاجز الكيلوبايت الواحد بواسطة Super Micro Chess [ 27 ] - وهو مشتق من Micro-Max - الذي بلغ حجمه 760 حرفًا (بما في ذلك المسافات والأسطر الجديدة). [ 28 ] يوجد أيضًا إصدار أصغر من محرك توليدو، وهو Toledo Picochess ، ويتكون من 944 حرفًا غير فارغ.
typedef char ** C ; #define F getchar()) #define H(z)*n++=z; #include <setjmp.h> #define v pain(0,0,0 #define Z while( #define _ if( #define o(d) (u[l]=0,l[d]=6^e,q=1e4>v,0),l[d]=0,u[l]=e^6,q) #define I(H,n) { _ r=l[x=H],!r|(r^e)<-1){ _ j=u[l],-7==r|6==r\ ){ n; e=~e; return 1e5- f; } u[l]=0,t=j+1,i=j-1; _!i&89<x)i\ =j,t=6; _-1==t&30>x)t=j,i=-7; Z++i<t){ b=S; d=0; S&=63; \ a=((j^e)!=1?6!=(j^e)?O[32+x/10]-O[u/10+32]-q:(S|=6!=j?8\ :1,2==ux)*9+9*(xu==2):(d=1==j?xu:ux)/8+!(!((xu)%\ 10)|r)*99+(j==1?90<x:29>x)*(9*O[28+i]-288))+O[r+28\ ]*9-288+O[x%10+33]-fO[33+u%10]; x[l]=i; S|=(21=\ =u|21==x)*2+(u==28|28==x)*4+(91==u|x==91)*16+32\ *(u==98|x==98)+(20==d)*64*x; a-=k>f?pain(a,f+1\ ,M,k):0; _ i==c&u==h&!f&N&a>-1e4&x==y)longjm\ p(z,1); S=b; _!N|f&&(a>M||!f&a==M&&1&rand()\ )){ _!f){ _ k){ c=i; h=u; y=x; } } else _ \ La <N){ n; e=~e; u[l]=j; x[l]=r; return\ a; } M=a; } } x[l]=r; u[l]=j; n; } } typedef int G ; C kk ; char J [ 78 ], O [ ] = "HRQAMS#-smaqrh[UTZYTU[|TBA(" "$#(ABT|ba`gg`ab8>GK[_`fFDZXEYR" "L \t ####" "##B#A#@#G#F#E#D#K \t\3 Zlv#tjm" " \3 J#tjm \3 Pwb" "ofnbwf \3 Joofdbo \3 )&`&`.&`&`" "#+&g* \t " ; G y , c , h , e , S , * s , l [ 149 ] ; jmp_buf z ; G main ( GL , C fa , CNa ) { return pain ( L , fa , Na , kk ) ; } G pain ( GL , C fa , CNa ,ج كا ){ ز و = فا ; جي ن = نا ؛ ز ك = كا ; زu = 99 ، p ، q ، r ، j ، i ، x ، t ، a ، b ، d ، M = -1e9 ؛ char * n ؛ إذا كان ( * l ) { e =~ e ؛ Z u > 21 ) { q = l [ -- u ] ^ e ؛ _ !-- q ) { _ ! l [ p = e ? u - 10 : u + 10 ]) { I ( p ,) _ e ? u > 80 & ! l [ p -= 10 ] : u < 39 & ! l [ p += 10 ]) I ( p ,)} _l [ p = e ? u - 11 : 9 + u ] ) I ( p ,) else _ u - 1 == S >> 6 ) { l [ u - 1 ] = 0 ؛ I ( p , l [ u - 1 ] = -2 ^ e )؛ } _ l [ p = e ? u -9 : 11 + u ]) I ( p ,) else _ S >> 6 == 1 + u ){ l [ 1 + u ] = 0 ; I ( p , l [ 1 + u ] = e ^ -2); } } _ !-- q ){ n = O + 41 ; Z ++ n < 50 + O ) I ( u + 80 -* n , )} _ 0 < q & 4 > q ){ n = q == 2 ? 53 + O : O + 49 ; Z ++ n < O + ( q != 1 ) * 4 + 54 ){ p = u ; do I ( p -=* n -80 ,) Z ! p [ l ]); } } _ 4 == q ){ n = 49 + O ; Z ++ n < O + 58 ) I ( u -* n + 80 ,) _ e &! ( S & 24 ) |! e &! ( S & 3 ) && k && ! l [ u -2 ] &! l [ u -1 ] &! ل [ u -3 ] && o ( u ) & o ( u -1 )){ l [ u -1 ] = 4 ^ e ; ل [ ش -4 ] = 0 ; أنا ( u -2 , ل [ u -1 ] = 0 ; ل [ u -4 ] = ه ^ 4 ); } _ ه &! ((S & 40 ) |! e &! ( S & 5 ) && k &&! l [ u + 1 ] &! l [ 2 + u ] && o ( u ) & o ( 1 + u )) { l [ u + 1 ] = e ^ 4 ; l [ 3 + u ] = 0 ; I ( u + 2 , l [ 1 + u ] = 0 ; l [ u + 3 ] = 4 ^ e ); } } } e =~ e ; return M ; } Z h < 130 ) { l [ h ] = - ( 21 > h | 98 < h | 2 > ( h + 1 ) % 10 ); O [ h ++ ] ^= 3 ; } n = O + 14 ; s = 20 + l ; Z ++ s < 29 + l ) { 10 [ s ] = 1 ; 70 [ s ] =~ ( * s = * n ++ -+ 84 ); 60 [ s ] = -2 ; } Z n = J ) { puts ( 58 + O ); u = 19 ; Z ++ u < 100 ) { H ( 32 )_ ! ( u % 10 )) H ( 32 ) H ( O [ 7 + l [ u ]]) _ ( 9 + u ) % 10 > 7 ){ H ( 58 - u / 10 ) H ( 32 ) _ u & 1 ) puts ( n = J ); } } puts ( O + 58 ); _ -1e4 > v , 1 )){ e =~ e ; puts ( O + ( v , 0 ) > 1e4 ? e ? 90 : 82 : 96 )); break ; } _ 1 < L & e ) { d = v , 2 + L ); printf ( O + 114 , h % 10 + 64 , 58 - h / 10 , y % 10 + 64 , 58 - y / 10 , d ); } else { putchar ( 62 ) ; h = ( 95 & F -44 ; c = l [ h += ( 56 - F * 10 ]; y = ( 95 & F -44 ; y += ( 56 - F * 10 ; Z 10 != ( u = ( 95 & F )){ c = 5 ; Z --c > 1 && u != c [ O ]); c = e ^ c -7 ; } } _ ! setjmp ( z )){ v + 1 , 1 ); puts ( 106 + O ); } } Z 10 != F ; }باي
فيما يلي مدخل من عام 1988 يحسب قيمة باي بالنظر إلى مساحتها الخاصة . [ 29 ] وقد كُتب هذا في النسخة الأصلية من كتاب K&R C.
ملاحظة: كان سطر المعالج المسبق الأصلي المقدم في عام 1988 هو #define _ -F<00||--F-OO--;، والذي استغل خطأً في المعالج المسبق K&R، وتم تصحيحه قبل ANSI C89.

#define_F-->00||F-OO--; كثافة العمليات F = 00 ، OO = 00 ؛ الرئيسي (){ F_OO ()؛ printf ( "%1.3f \n " , 4. *- F / OO / OO );} F_OO () { _ - _ - _ - _ _ - _ - _ - _ - _ _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ _ - _ - _ - _ - _ - - _ - _ - _ - _ - _ - _ - _ - _ _ - _ - _ - _ - _ _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ _ - _ _ - _ - _ - _ - - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ _ - _ - _ - _ - - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ _ - _ _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ _ - _ - _ - _ - _ - _ - _ - _ -_ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ - _ }محاكي الطيران
مثال آخر هو جهاز محاكاة الطيران الذي يستخدم نظام التشغيل X Windows، الفائز في مسابقة IOCCC لعام 1998، [ 30 ] كما هو مدرج وموصوف في كتاب Calculated Bets: Computers, Gambling, and Mathematical Modeling to Win (2001) [ 31 ] والموضح أدناه:
#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 ; نافذة z ؛ حرف 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 = 0.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 * ( 0.19 * E + a * 0.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 * ( 0.45 - 14 / l * X - a * 130 - J * 0.14 ) * _ / 125e2 + F * _ * v ; P = ( T * ( 47 * I - m * 52 + E * 94 * D - t * 0.38 + u * 0.21 * E ) / 1e2 + W * 179 * v ) / 2312 ; select ( p = 0 , 0 , 0 , 0 , & G ); v -= ( W * F - T * ( 0.63 * m)- I * .086 + m * E * 19 - D * 25 - .11 * u ) / 107e2 ) * _ ; D = cos ( o ); E = sin ( o ); } }أكاري
فيما يلي مدخل من عام 2011 يقوم بتقليل حجم صور PGM و PPM وفن ASCII (لأكاري من YuruYuri ) بواسطة دون، يانغ: [ 32 ]
/* + + + + [ >i>n[t */ # include < stdio . h > /*2w0,1m2,]_<n+a m+o>r>i>=>(['0n1'0)1; */ int /**/ main ( int /**/ n , char ** m ){ FILE * p , * q ; int A , k , a , r , i /* #uinndcelfu_dset<rsitcdti_oa.nhs>i/_*/ ; char * d = "P%" "d \n %d \40 %d" /**/ " \n %d \n\00 wb+" , b [ 1024 ], y [] = "yuriyurarararayuruyuri*daijiken**akkari~n**" "/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*=" "yuruyurwiyuriyura'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^؟" "*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni(" /** */ "i+k[>+b+i>++b++>l[rb" ; int /**/ u ; for ( i = 0 ; i < 101 ; i ++ ) y [ i * 2 ] ^= "~hktrvg~dmG*eoa+%squ#l2" ":(wn \" 1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne \" gt \" yogYURUYURI" [ i ] ^ y [ i * 2 + 1 ] ^ 4 / *!*/ p = ( n > 1 && ( m [ 1 ][ 0 ] - '-' || m [ 1 ][ 1 ] != '\0')) ؟ فوبين ( م [ 1 ], ص + 298 ) : ستدين ; /*y/riynrt~(^w^)],]c+h+a+r+*+*[n>)+{>f+o<r<(-m] =<2<5<64;}-]-(m+;yry[rm*])/[* */ q = ( n < 3 ||! ( m [ 2 ][ 0 ] - '-' || m [ 2 ][ 1 ])) ? stdout /*]{ }[*/ : fopen ( m [ 2 ], d + 14 ); if ( ! p || /* "]<<*-]>y++>u>>+r >+u+++y>--u---r>++i+++" <)< ;[>-m-.>a-.-i.++n.>[(w)*/ ! q /**/ ) return + printf ( "لا يمكن " "لا \x20 فتح \40 %s \40 " "" "for \40 %sing \n " , m [ ! p ? 1 : 2 ], ! p ? /* o=82]5<<+(+3+1+&.(+ m +-+1.)<)<|<|.6>4>-+(> m- &-1.9-2-)-|-|.28>-w-?-m.:>([28+ */ "read" : "writ" ); for ( a = k = u = 0 ; y [ u ]; u = 2 + u ){ y [ k ++ ] = y [ u ];} if (( a = fread ( b , 1 , 1024 /* ,mY/R*Y"R*/ , p /*U*/ ) /* R*/ ) > /*U{ */ 2 && b /*Y*/ [ 0 ] /*U*/ == 'P' && 4 == /*"y*r/y)r\} */ sscanf ( b ,د ، و ك ، و أ ، وإذا كان (i , & r ) && ! ( k - 6 && k - 5 ) && r == 255 ) { u = A ; إذا كان ( n > 3 ) { /* ]&<1<6<?<m.-+1>3> +:+ .1>3+++ . -m-) -;.u+=++.1<0< <; f<o<r<(.;<([m(=)/8*/ u ++ ; i ++ ;} fprintf ( q , d , k , u >> 1 , i >> 1 , r ); u = k -5 ? 8 : 4 ; k = 3 ;} else /*]>*/ {( u ) = /*{ p> >u >t>-]s >++(.yryr*/ + ( n + 14 > 17 ) ? 8 / 4 : 8 * 5 / 4 ;} for ( r = i = 0 ; ;){ u *= 6 ; u += ( n > 3 ? 1 : 0 ); if ( y [ u ] & 01 ) fputc ( /* <ge<tc>ha r -(-).)8+<1. >;+i.(<)< <)+{+if>([180*/ 1 * ( r ),q )؛ إذا كان ( y [ u ] & 16 ) k = A ؛ إذا كان ( y [ u ] & 2 ) k-- ؛ إذا كان ( i /* ("^w^NAMORI; { I*/ == a /*" )*/ ){ /**/ i = a = ( u ) * 11 & 255 ؛ إذا كان ( 1 && 0>= ( a = fread ( b , 1 , 1024 , p )) && ")]i>(w)-;} { /if-(-m--M1-0.)<{" [ 8 ] == 59 /* */ ) break ; i = 0 ;} r = b [ i ++ ] ; u += ( /**>> *..</<<<)<[[;]**/ + 8 &* ( y + u )) ? ( 10 - r ? 4 : 2 ) : ( y [ u ] & 4 ) ? ( k ? 2 : 4 ) : 2 ; u = y [ u /* 49;7i\(w)/;} y}ru\=*ri[ ,mc]o;n}trentuu ren ( */ ] - ( int ) '`' ;} fclose ( p ); k = + fclose ( q ); /*] <*.na/m*o{ri{ d;^w^;} }^_^}} " */ return k - -1 + /*\' '-`*/ ( - /*}/ */ 0x01 { ; { } } ;إذا تم تشغيل البرنامج باستخدام مصدره الخاص كمدخل، فإن النتيجة ستكون:
$ . / أكاري أكاري . c int * w , m , _namori = ( 'n' ); #include <stdio.h> /*;hrd"% dnd4%"*/ /**/ int ( y ), u , r [ 128 * 2 /*{y}icuhya*rr*rya= */ ]; void /**/ i (){ putchar ( u );} int /**/ main ( /* "(n"l)?M5{YlcpvdluvKct[j skao(tve"t"oYRYR" */ int ( w ), char ** n ){ for ( m = 256 ; -- m ; r [ m ] /* "<*]y+u>r>u+yu-r+i+" ) ;>mai+n>()/q*/ = 25 < ( 31 & ( m -1 )) || 64 - ( m & 192 ) || 2 > w ? m : ( 2 + m /*"*,/U// R/)/U * & /Y/0/U/=P &=/"*/ ) \ & 16 ? m -13 : 13 + m ) ; u =+ 10 ; for (;( m = /* *>/()/{ pu ts +(yy*+ n1>7?/:*/ getchar ()) + 1 ; i () ){ if ( 10 /* "wNMR;{ I/=/" )/{*/ == u * 1 ) i (); if ( m -10 ){ u = /*> *./<)[;*/ 8 * 4 ; i (); } u = r [ m ];} return ( * * n /*{i ;w; }_} ( -*/ * 00 ) ; } $ ./ أكاري أكاري . ج > . / أكاري . صغيرة $ . / أكاري . / أكاري . صغير wm_aoi ( n ) /*ity,,[2*/ {} char * y = ( ")M{lpduKtjsa(v""YY" "*yuruyuri" ) ; main ( /* /",U/ R)U* Y0U= ="/\ */ ){ يضع ( y + 17 /* "NR{I=" ){/=* =* */ ); /* **/ { ;;}} $ $ . / أكاري . / أكاري . صغير > . / أكاري . أصغر $ . / أكاري . / أكاري . أصغر رئيسي (){ يضع ( "Y" "U RU YU" \ "RI" ) /* */ ;} $انظر أيضاً
ملحوظات
- ↑ في بعض الحالات "بشكل مذهل"، وفقًا للدكتور دوبس ، [ 16 ] مع إدخال واحد يقوم بإنشاء وحدة حساب ومنطق 11 بتفي المعالج المسبق C [ 17 ]
مراجع
- ↑ بالمر، جيف (1 نوفمبر 2004). "ما وراء سطر الأوامر" . بي سي وورلد نيوزيلندا . فيرفاكس ميديا، فيرفاكس نيوزيلندا المحدودة. مؤرشف من الأصل في 10 فبراير 2013. تم الاسترجاع في 7 أبريل 2013 .
- ↑ "إعلان الفائزين في مسابقة 'الرمز البرمجي C المشفر الدولي' لعام 2026"" . سلاش دوت . تم الاطلاع عليه بتاريخ 2026-06-07 .
- ^ لاندون كيرت نول، ليونيد أ. بروخيس، ديفيد ماكينيس (2026/06/06). عرض جوائز IOCCC وكشف رمز المصدر (2h57m20) .
- ↑ "عملية التحكيم" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة . تم الاطلاع بتاريخ 27-08-2025 .
- ↑ "كيف بدأت" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة . تم الاطلاع عليه بتاريخ 27-08-2025 .
- ↑ "كبار المسؤولين التنفيذيين يفشلون في إجراء الحسابات بشكل صحيح" . صحيفة سان خوسيه ميركوري نيوز ، كاليفورنيا، 15 مايو 1993، صفحة 1أ. مؤرشف من الأصل بتاريخ 8 أغسطس 2014. تم الاطلاع عليه بتاريخ 8 أغسطس 2025 عبر نيوزبانك .
- 1 2 جاكسون، جواب (15 نوفمبر 2011). "عودة مسابقة الشفرة المبهمة" . بي سي وورلد . تم الاسترجاع في 1 مايو 2023 .
- ↑ سوين، مايكل (1 مايو 2008). "لا بد من وجود منافسة" . مجلة دكتور دوبز . تم الاسترجاع في 27 أغسطس 2025 .
- ↑ ليبس، دون (1993). "مقدمة". لغة C المبهمة وألغاز أخرى . وايلي. الصفحات 9-10 . ISBN 0-471-57805-3.
- ↑ "القواعد" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة.
- 1 2 3 "إرشادات" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة.
- ↑ "مرخص من IOCCC" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة.
- ↑ "Rule 2 Eras" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة.
- ↑ "إرشادات IOCCC لعام 1992" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة.
- ↑ "iocccsize" . GitHub.com . أنتوني سي هاو.
- ^ سبينيليس ، ديوميديس (5 أكتوبر 2006). ""تحسين الكود" . " مجلة الدكتور دوب . تم الاسترجاع بتاريخ 2023-05-01 .
- ↑ "2004/vik2 أفضل إساءة استخدام لـ CPP" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة . تم الاطلاع عليه بتاريخ 12-09-2025 .
- ↑ "1994/smr أسوأ إساءة استخدام للقواعد" (نص عادي) . IOCCC.org . المسابقة الدولية لشفرة C المبهمة. 1994. تم الاطلاع عليه بتاريخ 10-09-2025 .
- ↑ "دمج التفرع العظيم" (نص عادي) . IOCCC.org . المسابقة الدولية لشفرة C المبهمة. 2024. تم الاسترجاع في 10 سبتمبر 2025 .
- ↑ "فشل برنامج IOCCC في التجميع أو التشغيل" (نص عادي) . IOCCC.org . المسابقة الدولية لشفرة C المبهمة. 2024. تم الاطلاع عليه بتاريخ 10 سبتمبر 2025 .
- ↑ "قائمة قضايا IOCCC" (نص عادي) . IOCCC.org . المسابقة الدولية لشفرة C المبهمة. 2024. تم الاطلاع بتاريخ 10-09-2025 .
- ↑ "2004/gavin Best of Show" (نص عادي) . IOCCC.org . المسابقة الدولية لشفرة C المبهمة. 2004. تم الاطلاع عليه بتاريخ 10-09-2025 .
- ↑ "توليدو نانو تشيس وتوليدو بيكو تشيس" . nanochess.org .
- ↑ "أفضل لعبة في توليدو 2005" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة . تم الاطلاع بتاريخ 12 سبتمبر 2025 .
- ↑ "نسخة Nanochess التي تم فك تشفيرها جزئيًا" . GitHub . تم الاطلاع عليها في 1 مايو 2023 .
- ↑ توليدو غوتيريز، أوسكار (2014). توليدو نانو تشيس: الشفرة المصدرية المشروحة . لولو . ISBN 978-1-304-86437-6.
- ↑ "محرك شطرنج صغير للغاية - الصفحة الرئيسية - حجم برنامج المصدر والتنفيذ بلغة C صغير للغاية" . smmax.sourceforge.net .
- ↑ "Super Micro FIDE 760" . sourceforge.net .
- ↑ "1988/westley" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة. 1988. تم الاطلاع عليه بتاريخ 12-09-2025 .
- ↑ مدونة كارل بانكس: محاكي الطيران IOCCC . blog.aerojockey.com. تم الاطلاع عليه بتاريخ 1 مايو 2023.
- ↑ سكينا، ستيفن (2001). الرهانات المحسوبة: الحواسيب، والمقامرة، والنمذجة الرياضية لتحقيق الفوز . الجمعية الرياضية الأمريكية. الصفحات 152-153 . ISBN 978-0521009621تم الاطلاع عليه بتاريخ 12 سبتمبر 2025 .
- ↑ "2011/akari Best of Show - Most Shrinkable" . IOCCC.org . المسابقة الدولية لشفرة C المبهمة . تم الاطلاع عليه بتاريخ 12-09-2025 .
روابط خارجية
- الموقع الرسمي
- ممم... دونات قشرية مبهمة، سفين غريغوري
- لوري وايرد - مسابقة للرموز البرمجية غير القابلة للقراءة؟
- لوري وايرد - يجب أن يكون هذا الكود البرمجي بلغة C غير قانوني. إنه رائع أيضاً.
- "عالم البرمجة الغامضة والباطنية والفنية" بقلم يوسوكي إندو (الفائز بجائزة IOCCC 20 مرة)
- فك التعقيد: استكشاف ChatGPT لشفرة C الغامضة من IOCCC
- خبير البرمجة C، بيتر فان دير ليندن، الفصل. 8، ص. 225 "بعض الإغاثة الخفيفة" ISBN 0131774298
- بطولة IOCCC 2024 تسجل رقماً قياسياً بـ 23 فائزاً بعد انقطاع دام 4 سنوات، وتتميز بوجود روبوت محادثة يعمل بالذكاء الاصطناعي وحاسبة مراحل القمر
- مسابقات لغة البرمجة C
- فكاهة الكمبيوتر
- إخفاء البرمجيات
- جوائز ساخرة وفكاهية
- فعاليات متكررة تأسست عام 1984
