SmallChess
SmallChess

Reputation: 8106

What does this cryptic C code snippet do?

I’m reading some C code that can be found at https://home.hccnet.nl/h.g.muller/umax4_8.c. There, in main(), it has the following:

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

I don’t understand what this printf() call is doing, but somehow it outputs a chess board to the terminal.

Any idea?

Upvotes: 16

Views: 747

Answers (1)

C. K. Young
C. K. Young

Reputation: 222973

Basically, this:

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

What that does is, after every 8 board items, print a newline; otherwise, print out the board item indicated by b[n].

Upvotes: 31

Related Questions