/* -*- Mode: C -*- */ /* As you'll C, the story is as old as the language it's written in. * We met at the library, reaching for the same book, brushing fingers * as we connected. */ #include /* We started talking, talking about all the standard things people talk about * when they meet. */ #include #define she_said(x) printf(x "\n") #define she_sighed() she_said() #define she_paused() she_said() #define she_blinked() she_said() /* * She was a game tester by trade. We argued about games as if they were * art. */ int main (int argc, char *argv) { she_said("Do you know the game called 'Pacman' ?"); int pacman; /* I do, I said. */ int i; /* As she spoke the library aisle turned black, and all the shelves * turned yellow. */ char *aisle = malloc(61); she_said("I was a tester on Pacman."); /* Really ? I've always wondered how Pacman worked. How do the ghosts * know how to find Pacman in a maze like that ? How did those old * computers solve such a hard math problem so easily ? */ she_said("The ghosts just follow the smell Pacman leaves behind passing through each square."); /* I first drew in her lovely smell, then smelled my armpits to compare. * There was no way I was going to get out of this alive. */ she_said("It's the perfect game, because you cannot ever win. You can pop pills and eat ghosts as much as you want, but the game keeps going until you lose. Try it!"); /* And as she spoke she changed into a ghost and started floating towards me. * I turned and ran, spreading the smell of fear and excitement, and wanting * desperately to be eaten. */ for (pacman = 30; pacman < 60; ++pacman) { for (i = 0; i < 60; ++i) aisle[i] = ' '; aisle[61] = '\0'; aisle[(pacman - 30) * 2] = 'G'; aisle[pacman] = '<'; for (i = pacman + 1; i < 60; ++i) aisle[i] = '.'; aisle[60] = 'o'; printf("%s\r", aisle); fflush(stdout); usleep(200000); } /* As I reached the pill I stopped and turned around. */ aisle[59] = '>'; sleep(2); printf("%s\r", aisle); fflush(stdout); sleep(2); aisle[60] = ' '; printf("%s\r", aisle); fflush(stdout); sleep(3); /* I kissed her gently on the cheek close enough to her lips to be confusing * for the both of us. */ she_blinked(); she_said("What are you doing ?"); // as she moved neither forwards // nor backwards. she_said("This isn't how you play the game. "); /* Are you sure we are playing? Are you sure this is a game? * If it is then the game is love. */ she_said("This isn't love. Love does not exist."); she_paused(); #define LOVE 0 /* "It's invented by people who sell stuff; a program for humans to run." * Should I really be talking about love with the ghost of a girl ? * Was there anything I could help her with to make her real again, * to make us real? */ she_said("I miss testing Pacman. Life was so simple."); she_said("Squares and dots and circles."); she_sighed(); /* She had learned to program in school, but her heart was not in it. * She'd tried to program it, but the computer had had no love for her. */ she_said("You don't have to write my program for me."); she_said("But I'll love you forever if you do."); she_paused(); // Well I am nothing if not a programmer. // And so I started writing. And so she started loving. Test me. Forever? // We can't ever win. while (1) LOVE; she_said("One day this us will end. Nothing lasts forever."); // But she didn't know I made sure we'd never get to the end. return LOVE; }