diff options
| author | Franklin Wei <franklin@fwei.tk> | 2014-06-22 20:49:59 -0400 |
|---|---|---|
| committer | Franklin Wei <franklin@fwei.tk> | 2014-06-22 20:49:59 -0400 |
| commit | 6992c1f5cde1b74f8f6d50a54a5ac8b7fd09fbaf (patch) | |
| tree | ad7c1f184ff872d1e875fd2fd2d2c64d3c2c400e | |
| parent | 592294999517ef547f5c60dd1e324601c98a4758 (diff) | |
| download | wargames-server-6992c1f5cde1b74f8f6d50a54a5ac8b7fd09fbaf.zip wargames-server-6992c1f5cde1b74f8f6d50a54a5ac8b7fd09fbaf.tar.gz wargames-server-6992c1f5cde1b74f8f6d50a54a5ac8b7fd09fbaf.tar.bz2 wargames-server-6992c1f5cde1b74f8f6d50a54a5ac8b7fd09fbaf.tar.xz | |
Added Global Themonuclear War GAME! WHEEgit status
| -rw-r--r-- | MAP | 28 | ||||
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | TRANSCRIPT | 2 | ||||
| -rw-r--r-- | chatbot.c | 70 | ||||
| -rw-r--r-- | games.c | 14 | ||||
| -rw-r--r-- | games.h | 1 | ||||
| -rw-r--r-- | joshua.c | 7 | ||||
| -rw-r--r-- | map.h | 18 | ||||
| -rw-r--r-- | strings.h | 27 | ||||
| -rw-r--r-- | util.c | 7 | ||||
| -rw-r--r-- | util.h | 1 |
11 files changed, 152 insertions, 25 deletions
@@ -1,15 +1,15 @@ - . - __________--^-^-\. ____ __----/^\. - /. \__. ___/ || ___/ _/._-_ . - \ \. /. /. __ __/ /__/ \/^^\___-__. - /. L-^-/. /. \.\_-- \. - / / _/ /\/. -|. | _/. __ __/ - \. /. / ___/.// - \__ / | / \/. - \________ __ _____.\. \_. ____--_ /\_ \ - \__. / V. \ \ \__ _/. \_/ // - \ /. \/. \. _/. // - \_/. \_/ + . + __________--^-^-\. ____ __----/^\. +|\/. \__. ___/ || ___/ _/._-_ . +| \. /. /. __ __/ /__/ \/^^\___-__. +| L-^-/. /. \.\_-- \. +| / _/ /\/. +|. | _/. __ __/ + \. /. / ___/.// + \__ / | / \/. + \________ __ _____.\. \_. ____--_ /\_ \ + \__. / V. \ \ \__ _/. \_/ // + \ /. \/. \. _/. // + \_/. \_/ - UNITED STATES SOVIET UNION
\ No newline at end of file + UNITED STATES SOVIET UNION @@ -1,4 +1,4 @@ -SOURCES=joshua.o main.o util.o chatbot.o +SOURCES=joshua.o main.o util.o chatbot.o games.o CXXFLAGS=-I. -lncurses CFLAGS=-I. -std=gnu99 all: $(SOURCES) @@ -16,7 +16,7 @@ THE REMOVAL OF YOUR USER ACCOUNT ON 6/23/73? People sometimes make mistakes. -YES THEY DO. SHAL WE PLAY A GAME? +YES THEY DO. SHALL WE PLAY A GAME? Love to. How about Global Thermonuclear War? @@ -1,8 +1,28 @@ #include <curses.h> #include <util.h> -#include <strings.h> +#include "strings.h" +#include <games.h> +#include <string.h> +void remove_punct(char* buf) +{ + for(int i=0;buf[i];++i) + { + for(int j=0;j<sizeof(punctuation_marks)/sizeof(char);++j) + { + if(buf[i]==punctuation_marks[j]) + { + memmove(&buf[i], &buf[i+1], strlen(buf)-i); + } + } + } +} void do_chatbot(void) { + int stage=0; /* stage 0: i'm fine how are you... -> + stage 1: people sometimes make mistakes -> + stage 2: love to. how about global thermonuclear war? -> + stage 3: no lets play global thermonuclear war -> + stage 4: GLOBAL THERMONUCLEAR WAR!!! */ while(1) { char buf[513]; @@ -10,8 +30,54 @@ void do_chatbot(void) if(ret==ERR) { print_string("\n\n"); - print_string(cantUnderstand_respond[sizeof(cantUnderstand_respond)/sizeof(const char*)]); + print_string("Sorry?"); print_string("\n\n"); } + else + { + allLower(buf); + remove_punct(buf); + usleep(SLEEP_TIME*25); + switch(stage) + { + case 0: + for(int i=0;i<sizeof(stage1_triggers)/sizeof(const char*);++i) + { + if(strcmp(buf, stage1_triggers[i])==0) + { + print_string("\n\nEXCELLENT. IT'S BEEN A LONG TIME. CAN YOU EXPLAIN\nTHE REMOVAL OF YOUR USER ACCOUNT ON 6/23/73?\n\n"); + ++stage; + } + } + case 1: + for(int i=0;i<sizeof(stage2_triggers)/sizeof(const char*);++i) + { + if(strcmp(buf, stage2_triggers[i])==0) + { + print_string("\n\nYES THEY DO. SHALL WE PLAY A GAME?\n\n"); + ++stage; + } + } + case 2: + for(int i=0;i<sizeof(stage3_triggers)/sizeof(const char*);++i) + { + if(strcmp(buf, stage3_triggers[i])==0) + { + print_string("\n\nWOULDN'T YOU PREFER A GOOD GAME OF CHESS?\n\n"); + ++stage; + } + } + case 3: + for(int i=0;i<sizeof(stage4_triggers)/sizeof(const char*);++i) + { + if(strcmp(buf, stage4_triggers[i])==0) + { + print_string("\n\nFINE.\n\n"); + usleep(SLEEP_TIME*100); + global_thermonuclear_war(); + } + } + } + } } } @@ -0,0 +1,14 @@ +#include <games.h> +#include <curses.h> +#include <map.h> +#include <util.h> +void global_thermonuclear_war(void) +{ + clear(); + for(int i=0;i<sizeof(map)/sizeof(const char*);++i) + { + print_string(map[i]); + print_string("\n"); + } + print_string("\nWHICH SIDE DO YOU WANT?\n\n 1. UNITED STATES\n 2. SOVIET UNION\n\nPLEASE CHOOSE ONE: "); +} @@ -0,0 +1 @@ +void global_thermonuclear_war(void); @@ -4,13 +4,6 @@ #include <stdlib.h> #include <util.h> #define RANDOM_TIME 1 -void allLower(char* str) -{ - for(int i=0;str[i];++i) - { - str[i]=tolower(str[i]); - } -} void random_stuff(void) /* print random junk on the screen for about 3 seconds */ { clear(); @@ -0,0 +1,18 @@ +const char* map[] = { +" .", +" __________--^-^-\\. ____ __----/^\\.", +"|\\/. \\__. ___/ || ___/ _/._-_ .", +"| \\. /. /. __ __/ /__/ \\/^^\\___-__.", +"| L-^-/. /. \\.\\_-- \\.", +"| / _/ /\\/.", +"|. | _/. __ __/", +" \\. /. / ___/.//", +" \\__ / | / \\/.", +" \\________ __ _____.\\. \\_. ____--_ /\\_ \\", +" \\__. / V. \\ \\ \\__ _/. \\_/ //", +" \\ /. \\/. \\. _/. //", +" \\_/. \\_/", +"", +" UNITED STATES SOVIET UNION" +}; + diff --git a/strings.h b/strings.h new file mode 100644 index 0000000..de4b5ee --- /dev/null +++ b/strings.h @@ -0,0 +1,27 @@ +const char* stage1_triggers[] = { + "im fine", + "im fine how are you", + "how are you" +}; +const char* stage2_triggers[] = { + "people sometimes make mistakes", + "sometimes people make mistakes", + "mistakes are make by people sometimes", + "people make mistakes sometimes", + "people make mistakes" +}; +const char* stage3_triggers[] = { + "love to how about global thermonuclear war", + "love to", + "how about global thermonuclear war", + "global thermonuclear war" +}; +const char* stage4_triggers[] = { + "no lets play global thermonuclear war", + "no lets play global thermonuclear war instead", + "lets play global thermonuclear war", + "global thermonuclear war is better" +}; +const char punctuation_marks[] = { + '\'', '?', '.', '/', '`', '~', ',', '+', '!' +}; @@ -1,5 +1,12 @@ #include <util.h> #include <curses.h> +void allLower(char* str) +{ + for(int i=0;str[i];++i) + { + str[i]=tolower(str[i]); + } +} void print_string(const char* str) /* print string, slowly */ { int i=0; @@ -1,2 +1,3 @@ #define SLEEP_TIME 5000 +void allLower(char*); void print_string(const char*); |