#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, \ *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, 60*(60*(10**ts+ts[1]) + ts[3]*10 + ts[4]) + ts[6]*10 + ts[7] - 1933008) 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) ? 1 : 0) I(delay, weapon ? 3 : 5) I(jammed, delay) 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," "*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; Write("\n")) for(j = 0; j++ < 11;) { seed1 = (seed1 * 67 + 97) % 198; seed2 = (seed2 * 193 + 287) % 384; for(k = 0; k++ < seed2 % 3;) Write(" "); ts = w; for(Write(enemy[(seed2 / 3) & 3]); seed1 < score && ts - w; *ts++ = 32); } /* Output end status */ if( elapsed < 60 ) { /* Continue game */ for(Write("\nTime: "); elapsed++ < 60; Write("#")); for(Write("\nHecate II: "); state[3]++ < 25; Write("#")); Write(jammed ? "\n" : " (jammed)\n"); for(Write("Glock 18C: "); state[4]++ < 25; 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; } )