#include #define q(Q) \ char *z = #Q, output[9999], *w = output, *w2, \ *enemy[] = {"('A`)", "(A`)", "('A)", "('A`)"}; \ int state[] = {0, 0, 0, 0, 0}; \ Q q( extern void X() { int 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 */ char *ts = __TIME__; int timestamp = (ts[0] - '0') * 3600 * 10 + (ts[1] - '0') * 3600 + (ts[3] - '0') * 60 * 10 + (ts[4] - '0') * 60 + (ts[6] - '0') * 10 + (ts[7] - '0'); int elapsed = (timestamp + 86400 - state[0 /* start timestamp */]) % 86400; int score = state[3 /* Hecate II use count */] * 17 + state[4 /* Glock 18C use count */] * 11; /* Select weapon based on optimization level */ int weapon = (&Y - &X) == (&Z - &Y) ? 0 : 1; int delay = weapon ? 3 : 5; int jammed = -1; int seed1 = state[0]; int seed2 = state[0]; int i; int j; int k; /* Run one iteration of the game */ if( score >= 198 ) { /* Game over (victory) */ Write("/* You win! */"); } else { /* Check for first iteration */ if( score == 0 ) { state[0] = timestamp; elapsed = 0; } /* Continue game */ if( state[3 + weapon /* use count */] > 0 && 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 q(Q) char*z=#Q,output[9999],*w=output,*w2," "*enemy[]={\"%s\", \"%s\", \"%s\", \"%s\"};" "int state[]={%d,%d,%d,%d,%d};Q\n" "q(%s)\n", enemy[0], enemy[1], enemy[2], enemy[3], state[0], state[1], state[2], state[3], state[4], 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++) *w++ = ' '; w2 = w; Write(enemy[(seed2 / 3) & 3]); if( seed1 < score ) { for(; w2 != w; *w2++ = ' '); } } *w++ = '\n'; } /* Output end status */ if( elapsed < 60 ) { /* Continue game */ Write("\nTime: "); for(i = elapsed; i < 60; i++) *w++ = '#'; Write("\nHecate II: "); for(i = state[3]; i < 25; i++) *w++ = '#'; Write(jammed == 0 ? " (jammed)\n" : "\n"); Write("Glock 18C: "); for(i = state[4]; i < 25; i++) *w++ = '#'; Write(jammed == 1 ? " (jammed)\n" : "\n"); } else { /* Time exceeded */ Write("\n\nGame over.\n\n"); } for(i = 0; i < 77; i++) *w++ = ' '; Write("*/"); } *w = '\0'; puts(output); return 0; } )