2013-04-23 75 views
1

我一直在模式匹配chatbot多年使用以下內容。一個人輸入一個輸入框,chatbot在一個輸出框中響應。Javascript - chatbot

這只是一系列「if語句」,這只是其中的一小部分。

如果有人輸入「yes」,機器人會回覆以下信息,除了在提示問題的信息4中。一旦問了這個問題,它就不會再觸發哪個是我想要的。

我不希望這個問題被反覆詢問。這一切都一直工作到最近。我無法弄清楚爲什麼它不再有效。

var yes_q4_asked="false"; 

if (input.search("yes")!= -1) { 
message[0] = "ok, yes it is."; 
message[1] = "yes, I suppose so."; 
message[2] = "ok, I understand."; 
message[3] = "ok, I guess so."; 
message[4] = "yeah, I reckon so. Say what color are your eyes?"; 
message[5] = "yes, I thought as much."; 
num = [Math.floor(Math.random()*6)] 
if ((num==4) && (yes_q4_asked=="false")) 
{ 
yes_q4_asked=="true"; 
document.result.result.value = message[num]; 
return true; 
} 
while (num==4) 
{ 
num = [Math.floor(Math.random()*6)] 
} 
document.result.result.value = message[num]; 
return true;} 
+0

如果任何人有興趣在JavaScript聊天機器人,嘗試[伊麗莎(HTTP:// WWW .masswerk.at/elizabot /) – PHearst 2014-01-20 18:31:51

回答

0
  • document.result.result.你確定這是正確的嗎?
  • var yes_q4_asked="false";你爲什麼不使用布爾值?
+0

實際的機器人巨大。我不想重寫它。我只是碰到了這個部分的障礙。 這是一個我用來測試的演示程序,如果這可以幫助任何人更好地瞭解它是如何工作的。 http://www.daniellechuchran.com/aademo.html簡而言之,如果您輸入「yes」,它將回復您在示例中看到的內容。 但是,如果消息4被觸發,我不希望它再次觸發。只有一次...沒有更多。我怎樣才能做到這一點。我希望其他「是」的回覆繼續保持原樣。 – 2013-04-23 17:52:18

2

有人發現我的問題。 這條線上面的代碼:

yes_q4_asked=="true"; 

應該是:

yes_q4_asked="true"; 

one =two ==