2010-12-16 178 views
14

Je regarde http://home.hccnet.nl/h.g.muller/umax4_8.c, un fichier source C. Dans l'ensemble, il a ceci:Qu'est-ce que c'est?

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

Je ne comprends pas ce fait, mais en quelque sorte, il sort le printf() un échiquier au terminal.

Une idée?

+6

c'est joli code obfuscated, lol. –

+8

Il vous manque beaucoup ici. W par exemple avait été défini comme 'while'. Vous pouvez inclure tout le code pertinent. – EboMike

+1

"... bien que vous puissiez le décrire comme un code C obscurci, en raison de sa petite taille, il pourrait être plus facile à comprendre que des moteurs plus gros et mieux stylés." H.G. Muller –

Répondre

28

Fondamentalement ceci:

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

Qu'est-ce qui fait est, après 8 articles de société, imprimer une nouvelle ligne; sinon, imprimez l'élément du tableau indiqué par b[n].

+1

+1 travail étonnant – SmallChess

+1

H.G. Muller est l'autre nom de C J-Y;) – William

+2

@William: Funny. :-) En fait, j'ai fait du reverse engineering pendant de nombreuses années; C'est à peu près comme RE, seulement plus facile parce que je ne traite pas directement avec le code objet. :-P –