2010-12-16 13 views
14

Ich sehe http://home.hccnet.nl/h.g.muller/umax4_8.c, eine C-Quelldatei. In der Hauptsache, es hat dies:Was macht das?

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

Ich verstehe nicht, was die printf() tut, aber irgendwie gibt er ein Schachbrett an das Terminal.

Irgendeine Idee?

+6

das ist nette verschleierte code, lol. –

+8

Sie vermissen hier ziemlich viel. W wurde zum Beispiel als 'while' definiert. Vielleicht möchten Sie alle relevanten Code enthalten. – EboMike

+1

"... obwohl Sie es als verschleierten C-Code beschreiben könnten, ist es aufgrund seiner geringen Größe leichter zu verstehen als größere, besser gestylte Engines." H. G. Müller –

Antwort

28

Grundsätzlich ist dieser:

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

Was das bedeutet ist, alle 8 Brett Artikel, eine neue Zeile gedruckt werden; Drucken Sie andernfalls das von b[n] angezeigte Board-Element aus.

+1

+1 erstaunliche Arbeit – SmallChess

+1

H. G. Muller ist C J-Y anderer Name;) – William

+2

@William: Lustig. :-) Eigentlich habe ich seit vielen Jahren Reverse Engineering gemacht; Das ist ziemlich ähnlich wie RE, nur einfacher, weil ich mich nicht direkt mit Objektcode beschäftige. :-P –