#include #define I(x, y) int x = (y); #define q(Q) \ int state[] = {0, 0, 0, 0, 0}; \ char *z = #Q, output[9999], *w = output, *w2, \ *enemy[] = {"('A`)", "(A`)", "('A)", "('A`)"}, \ Q q( *ts = __TIME__; extern void X() { I(i, 0) for(; i < 123; i++); } extern void Y() {} extern void Z() {} static void Write(char *text) { for(; *text; *w++ = *text++); } int main() { /* Current timestamp */ I(timestamp, (*ts - 48) * 3600 * 10 + (ts[1] - 48) * 3600 + (ts[3] - 48) * 60 * 10 + (ts[4] - 48) * 60 + (ts[6] - 48) * 10 + (ts[7] - 48)) I(elapsed, (timestamp + 86400 - *state) % 86400) I(score, state[3 /* Hecate II use count */] * 17 + state[4 /* Glock 18C use count */] * 11) /* Select weapon based on optimization level */ I(weapon, (&Y - &X) == (&Z - &Y) ? 0 : 1) I(delay, weapon ? 3 : 5) I(jammed, -1) I(seed1, *state) I(seed2, seed1) I(i, 0) I(j, 0) I(k, 0) /* Run one iteration of the game */ if( score > 197 ) { /* Game over (victory) */ Write("/* You win! */"); } else { /* Check for first iteration */ if( !score ) { *state = timestamp; elapsed = 0; } /* Continue game */ if( state[3 + weapon /* use count */] && state[1 + weapon /* time delta since last use */] + delay > elapsed ) { /* Weapon is jammed because it's fired too soon */ jammed = weapon; } else { /* Fire weapon */ state[3 + weapon /* use count */]++; } state[1 + weapon /* time delta */] = elapsed; if( elapsed < 60 ) { /* Output source if game is still going */ w += sprintf( w, "#include\n" "#define I(x, y) int x = (y);\n" "#define q(Q) " "int state[]={%d,%d,%d,%d,%d};" "char*z=#Q,output[9999],*w=output,*w2," "*enemy[]={\"%s\", \"%s\", \"%s\", \"%s\"},Q\n" "q(%s)\n", *state, state[1], state[2], state[3], state[4], *enemy, enemy[1], enemy[2], enemy[3], z); } /* Output enemy status */ Write("/*\n\n"); for(i = 0; i < 18; i++) { for(j = 0; j < 11; j++) { seed1 = (seed1 * 67 + 97) % 198; seed2 = (seed2 * 193 + 287) % 384; for(k = 0; k < seed2 % 3; k++) Write(" "); w2 = w; Write(enemy[(seed2 / 3) & 3]); if( seed1 < score ) for(; w2 - w; *w2++ = 32); } Write("\n"); } /* Output end status */ if( elapsed < 60 ) { /* Continue game */ Write("\nTime: "); for(i = elapsed; i < 60; i++) Write("#"); Write("\nHecate II: "); for(i = state[3]; i < 25; i++) Write("#"); Write(jammed ? "\n" : " (jammed)\n"); Write("Glock 18C: "); for(i = state[4]; i < 25; i++) Write("#"); Write(jammed - 1 ? "\n" : " (jammed)\n"); } else { /* Time exceeded */ Write("\n\nGame over.\n\n"); } for(i = 0; i < 77; i++) Write(" "); Write("*/"); } *w = 0; puts(output); return 0; } )