用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 2 部分: 使 mindreader 应用程序更智能化
2010-03-09 00:00:00 来源:WEB开发网核心提示: 图 3. 新值所以,直到重新装载页面之前,用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 2 部分: 使 mindreader 应用程序更智能化(7),添加的所有新项和问题都会起作用;您只要心里想着添加的新项,并相应地回答问题,这个问题应该应用于当前范围中
图 3. 新值
所以,直到重新装载页面之前,添加的所有新项和问题都会起作用;您只要心里想着添加的新项,并相应地回答问题,就会看到它们。
但糟糕的是,重新装载页面之后,知识库就会回到原来的状态。另外,用户只能看到自己添加的新项。如果每个人都能够看到别人添加的新项,那不是很棒吗?
改进后的新算法
为了让玩家能够利用所有人添加的新信息,需要设置一个外部数据库。对于本文,我们使用一个 MySQL 数据库和 PHP,但是因为实际的实现与本文的主题无关,所以这里不讨论实现方法。以原来的算法为基础,添加数据库集成之后,就形成下面的算法:
从数据库中获取最新的知识库。
问用户他想的项是 “animal, vegetable, or mineral?”。
排除所有与这个问题的回答不相符的项。
如果只剩下最后一项,就询问用户这个猜测是否正确。
如果正确,就从数据库重新装载知识库并重新开始游戏。
如果不正确,就询问用户究竟是什么项,并要求用户提供一个可以区分正确答案和错误答案的问题。
把这个问题发送到数据库并返回新问题的 ID
使用新的问题 ID 在原来的目标和新目标中添加答案,并把新目标添加到知识库中
如果仍然有多个项,就要确定一个问题,这个问题应该应用于当前范围中尽可能多的项。(这是关键;这样可以排除尽可能多的可能选择。)
编缉推荐阅读以下文章
- 用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 1 部分: 构建 Twenty Questions 基础结构
更多精彩
赞助商链接