2010-12-16 25 views
14

मैं http://home.hccnet.nl/h.g.muller/umax4_8.c, एक सी स्रोत फ़ाइल देख रहा हूं।यह क्या कर रहा है?

N=-1;W(++N<121) 
    printf("%c",N&8&&(N+=7)?10:".?+nkbrq?*?NKBRQ"[b[N]&15]); 

मुझे समझ नहीं आता क्या printf() कर रही है, लेकिन किसी भी तरह यह टर्मिनल के लिए एक शतरंज बोर्ड आउटपुट: मुख्य रूप से, यह इस है।

कोई विचार?

+6

यह अच्छा obfuscated कोड है, lol। –

+8

आप यहां बहुत कुछ खो रहे हैं। उदाहरण के लिए डब्ल्यू को 'जबकि' के रूप में परिभाषित किया गया था। आप सभी प्रासंगिक कोड शामिल करना चाह सकते हैं। – EboMike

+1

"... यद्यपि आप इसका वर्णन अपरिवर्तित सी कोड के रूप में कर सकते हैं, इसके छोटे आकार के कारण बड़े, बेहतर स्टाइल इंजनों की तुलना में समझना आसान हो सकता है।" एचजी मुलर –

उत्तर

28

मूल रूप से इस:

for (n = 0; n < 121; ++n) { 
    if (n & 8) { 
     n += 7; 
     putchar('\n'); 
    } else { 
     putchar(".?+nkbrq?*?NKBRQ"[b[n] & 15]); 
    } 
} 

कि क्या करता है, हर 8 बोर्ड आइटम के बाद, एक नई पंक्ति मुद्रित; अन्यथा, b[n] द्वारा इंगित बोर्ड आइटम मुद्रित करें।

+1

+1 अद्भुत काम – SmallChess

+1

एचजी मुलर सी जे-वाई का दूसरा नाम है;) – William

+2

@ विलियम: मजेदार। :-) दरअसल, मैंने कई सालों से रिवर्स इंजीनियरिंग किया है; यह आरई की तरह काफी है, केवल इतना आसान है क्योंकि मैं सीधे ऑब्जेक्ट कोड से निपट नहीं रहा हूं। :-P –

संबंधित मुद्दे