我想采取行动,向用户提问并以是或否回答。答案影响玩家的未来,并根据用户答案得到不同的问题。我也想存储状态,以便用户以后可以恢复。我认为类似二叉树的结构将起作用,但是如何在dialogflow中实现它。
答案 0 :(得分:0)
主要有两种方法。
第一种方法是使用contexts,可以对其进行动态配置以限制可以触发的意图类型。这将允许您以非常精确的方式开发树状结构。但是,随着扩展,这种方法将更难以管理。
另一种选择是在session data中存储诸如回答问题和困难之类的数据,并具有单个Dialogflow意图,该意图可以捕获用户的答案,给他们通过/失败,并提供下一个问题。
app.intent('My Question', (conv, {answer}) => {
const {currentQuestion} = conv.data
if (currentQuestion.answer === answer) {
conv.ask('Correct!')
conv.data.difficulty++
} else {
conv.ask('Wrong!')
conv.data.difficulty--
}
const nextQuestion = customShuffle(conv.data.allQuestions, conv.data.difficulty)
conv.data.allQuestions[nextQuestion.id] = undefined
conv.ask('Next question! ' + nextQuestion.question)
})