想玩“开心辞典” 到我论坛吧
技术与开发
“开心辞典”是深受大家喜爱的益智游戏,既能增长知识,又能放松心情,真可谓一举两得。大家想过把这种益智游戏搬到自己的论坛里吗?有了这种新功能,何愁论坛人气不旺?

我们可以设计一个问答题插件来实现“开心辞典”的功能(插件下载地址:http://www.shudoo.com/bzsoft,本文以ASP论坛为例)。制作该插件,首先要建立题库,然后按照网友选择的问答题类别,从题库中随机提取相关问答题,最后判断网友回答是否正确,并根据答题结果奖励或扣除答题者的论坛币。根据相同原理,还可以制作出各类问题调查程序。
小知识:在ASP程序中,对于建立的对象,在不使用它的时候,我们应该将它释放(如连接数据库的 connection对象),因为释放对象与不释放对象相比,可以节约服务器大约一半的资源,特别是当系统长期运行的时候,对象的释放尤为重要。所以在设计问答题插件时,每次提取题目后就要及时地释放数据库连接对象。
第一步 建立问答题的题库
题库是本插件的基础,有了它才能给答题者出题。首先我们要确定题库的结构,包含题目类别、提问内容、四个可选答案、正确答案、限定答题时间以及题目奖励。依据题库结构在Access数据库中新建一张题库表。
题库建好后,便可以增加各种题目了,这里我们不仅可以自己录入题目,也可以将录入接口提供给网友,让他们提供,这样题库的容量会大幅增加。新建一张ASP页面,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
dvbbs.stats="上传题目"
Dvbbs.nav()
Dvbbs.Head_var 2,0,"",""
if dvbbs.MemberName="" or (not dvbbs.founduser) then
Errmsg=Errmsg+"〈br〉"+"〈li〉您没有在开心词典上传题目的权限,请先登录或者同管理员联系。"
if cint(CanUpChoose)=0 and (request("action")="" or request("action")="addxz ok") then
errmsg=errmsg+"〈br〉〈li〉开心词典没有开放上传选择题的权限"
dvbbs.FoundIsChallenge=true
elseif cint(CanUpFill)=0 and (request("action")="addtk" or request("action")="addtkok") then
errmsg=errmsg+"〈br〉〈li〉开心词典没有开放上传填空题的权限"
dvbbs.FoundIsChallenge=true
else
'根据对应参数调用加入题库操作的函数
select case request("action")
case "addxzok"
call addxzok()'将提交的题目存入题库
case else
call addxz()'显示题目上传页面
end select
end if
if dvbbs.FoundIsChallenge then call test_err()
第二步 从题库中随机提取题目
当网友进入论坛的“开心辞典”页面后,要先判断该网友是否为论坛会员以及所剩的论坛币是否足以支付答错问题后被扣除的数目。当这两个条件都满足后,就可以答题了。这时要随机提取题目。新建一张ASP页面,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
ars.CursorLocation=3
ars.open sql,aconn,1,1'从题库中提取题目
Randomize
ars.absolutePosition=Fix(ars.recordcount*Rnd)+1'随机提取题库中的某一题目
session("ajj")=ars(0) '题目奖金
session("atime")=ars(1) '题目限时
session("atitle")=ars(2) '题目内容
session("akey1")=ars(3) '答案1
session("akey2")=ars(4) '答案2
session("akey3")=ars(5) '答案3
session("akey4")=ars(6) '答案4
session("aok")=ars(7) '正确答案
第三步 判断回答是否正确
当网友答题后,需要将答案返回服务器端与正确答案对比。为了避免再次提取题库中该题目的信息,我们可以预先将答案保存到session中,这样我们便可以直接核对答案了。
如果回答正确,我们便将论坛币加入论坛用户表对应的字段中;如果回答错误,便从用户表对应字段中减去论坛币。最后将判断结果返回给答题者。新建一张ASP页面,输入相关代码(代码下载地址:http://www.shudoo.com/bzsoft)。
编后
本插件是一款益智类游戏插件,相信安装它后会为你的论坛带来更多的人气。除了文章中所提到的通过录入累积题库的方式外,还可以使用网络采集的方式进行题库的累积。