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 /chatbot.c | |
| 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
Diffstat (limited to 'chatbot.c')
| -rw-r--r-- | chatbot.c | 70 |
1 files changed, 68 insertions, 2 deletions
@@ -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(); + } + } + } + } } } |