#include <stdio.h> #include <stdlib.h> #include <string.h> int room; void doClear() { printf("\033[H\033[J"); } void doColor(int c) { if (c >= 0 && c <= 8) printf("\033[3%dm", c); } void undoColor() { printf("\033[m"); } void quit() { doClear(); doColor(1); printf("You never made it out.\n"); printf("You died of starvation.\n"); printf("Thanks for playing!\n"); undoColor(); exit(0); } void room0() { char user_input[128]; doColor(4); printf("You are in the entry hall.\n"); printf("The massive doors are securely locked.\n"); printf("You can go "); doColor(1); printf("north"); doColor(4); printf(" or "); doColor(1); printf("south"); doColor(4); printf(".\n"); while (1) { undoColor(); printf("\nYou go: "); fgets(user_input, 127, stdin); if (strcasecmp(user_input, "north\n") == 0) { room = 1; return; } else if (strcasecmp(user_input, "south\n") == 0) { room = 2; return; } else if (strcasecmp(user_input, "quit\n") == 0) { quit(); } else { doColor(1); printf("Sorry, I didn't understand you. Try again.\n"); } } } void room1() { char user_input[128]; doColor(5); printf("You are in the den.\n"); printf("You see papers scattered everywhere.\n"); printf("You also see a creaky old door leading to the back yard.\n"); printf("You can go "); doColor(1); printf("west"); doColor(5); printf(" or "); doColor(1); printf("south"); doColor(5); printf(".\n"); while (1) { undoColor(); printf("\nYou go: "); fgets(user_input, 127, stdin); if (strcasecmp(user_input, "west\n") == 0) { room = 3; return; } else if (strcasecmp(user_input, "south\n") == 0) { room = 0; return; } else if (strcasecmp(user_input, "quit\n") == 0) { quit(); } else { doColor(1); printf("Sorry, I didn't understand you. Try again.\n"); } } } void room2() { char user_input[128]; doColor(2); printf("You are in the library.\n"); printf("Dusty shelves line the walls.\n"); printf("There are thousands of old books.\n"); printf("You can go "); doColor(1); printf("north"); doColor(2); printf(".\n"); while (1) { undoColor(); printf("\nYou go: "); fgets(user_input, 127, stdin); if (strcasecmp(user_input, "north\n") == 0) { room = 0; return; } else if (strcasecmp(user_input, "quit\n") == 0) { quit(); } else { doColor(1); printf("Sorry, I didn't understand you. Try again.\n"); } } } int main(int argc, char *argv[]) { room = 0; doClear(); doColor(3); printf("Welcome!\n"); printf("You have entered a strange house.\n"); printf("The door has locked behind you!\n"); printf("Can you escape alive?!\n"); printf("Hahahahaha!\n\n"); while (room != 3) { if (room == 0) room0(); else if (room == 1) room1(); else if (room == 2) room2(); doClear(); } doColor(3); printf("You made it!\n"); printf("Congratulations.\n"); printf("Thanks for playing!\n"); undoColor(); return 0; }