2016-04-02 16 views
1

Microsoft'un Bot Framework numarasını kullanarak, yüksek rastgele bir sayıyı tahmin etmenizi sağlayan basit bir düşük sohbet botu oluşturuyorum. Yinelemeli diyalogları kullanmaya karar verdim; Ancak, her ne zaman oturum.send kullanarak bir ileti gönderirseniz, iletişim kutusu sona erer. Diyaloğu bitirmeyen bir mesajı nasıl gönderebilirim?Microsoft Bot Framework - Bir iletişim kutusu sırasında ileti gönderme

bot.add('/max-num', [ 
 
\t function (session) { 
 
\t \t builder.Prompts.number(session, "What's the max number?") 
 
\t }, 
 
\t function (session, results) { 
 
\t \t var max = results.response; 
 
\t \t session.userData.max = max; 
 
\t \t session.userData.num = Math.ceil(Math.random() * max) 
 
\t \t session.userData.round = 1; 
 
\t \t session.send("I choose a number between 1 and " + max + " inclusively!"); 
 
\t \t session.replaceDialog('/round'); 
 
\t } 
 
]); 
 
bot.add('/round', [ 
 
\t function (session) { 
 
\t \t builder.Prompts.number(session,"Guess a number") 
 
\t }, 
 
\t function (session, results) { 
 
\t \t // function vars 
 
\t \t var round = session.userData.round; 
 
\t \t var target = session.userData.num; 
 
\t \t var guess = results.response; 
 
\t \t 
 
\t \t // high/low logic 
 
\t \t if (guess === target) { // Winning Case 
 
\t \t \t session.send("Wow you got it in " + round + (round === 1 ? "round" : "rounds")); 
 
\t \t \t session.endDialog(); 
 
\t \t } else { // Losing case 
 
\t \t \t if (guess > target) 
 
\t \t \t \t session.send("Your guess was too high!"); 
 
\t \t \t else if (guess < target) 
 
\t \t \t \t session.send("Your guess was too low!"); 
 

 
\t \t \t session.replaceDialog("/round"); 
 
\t \t } 
 
\t } 
 
])

cevap

1

siz "" (bir kullanıcıdan giriş ve kullanıcıların giriş builder.Prompts.text() beklemek veya session.send kullanabileceğiniz bir çocuk iletişim kutusunu başlatabilir olabilir) kendisini sonlandırır ve ebeveyne geri döner.

İlgili konular