aboutsummaryrefslogtreecommitdiff
path: root/chatbot.c
diff options
context:
space:
mode:
authorFranklin Wei <franklin@fwei.tk>2014-06-22 20:49:59 -0400
committerFranklin Wei <franklin@fwei.tk>2014-06-22 20:49:59 -0400
commit6992c1f5cde1b74f8f6d50a54a5ac8b7fd09fbaf (patch)
treead7c1f184ff872d1e875fd2fd2d2c64d3c2c400e /chatbot.c
parent592294999517ef547f5c60dd1e324601c98a4758 (diff)
downloadwargames-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.c70
1 files changed, 68 insertions, 2 deletions
diff --git a/chatbot.c b/chatbot.c
index 89e5cc5..049b667 100644
--- a/chatbot.c
+++ b/chatbot.c
@@ -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();
+ }
+ }
+ }
+ }
}
}