现在的位置: 首页 >> 网站编程 >> ASP >> 用ASP实现聊天室中的在线答题游戏
添加时间:2005-12-4 来源:网教中国 作者:
用ASP实现聊天室中的在线答题游戏

   主要功能为:在聊天室中,每隔5分钟,向显示对话页面,发送一道题,所有用户都可答题。
  答对者加相应的分值。
  具体实现:在聊天室框架中加入一隐含帧,
  此帧每5分钟刷新一次。
  隐含帧内的ASP页内容如下:
  <%@ LANGUAGE=VBs cript%>
  <%Response.Expires=0%>
  <%
  Dim Conn,Rs
  Application.Lock
  application("CanswerName")=application("answerName") '保存答对题用户的名字
  application("answerName")=""
  application("TanswerName")="" '清除答错题用户的名子
  set Conn=server.createobject("ADODB.Connection")
  accessdb="db1.mdb" '题库的连接
  myDSN="DRIVER={Microsoft Access Driver (*.mdb)};"
  myDSN=myDSN & "DBQ=" &server.mappath(accessdb)
  Conn.Open myDSN
  Set Rs = Server.CreateObject("ADODB.Recordset")
  Rs.CursorLocation=3
  Rs.open "select * from QUESTION ",Conn
  Randomize '随机取得一道题的ID
  r=Rs.RecordCount
  ID=int((r-1)*Rnd)+1
  Rs.Close
  set Rs=Nothing
  Set Rs = Server.CreateObject("ADODB.Recordset")
  Rs.open "select * from QUESTION where questionID="&ID,Conn
  application("questionName")=Rs("questionName") '题目
  application("questionID")=Rs("questionID") '题的ID
  application("questionCent")=Rs("questionCent") '题的分数
  application("questionClass")=Rs("questionNotes")'题的说明
  Rs.close
  Set Rs = Nothing
  Set Ra = Server.CreateObject("ADODB.Recordset")
  Ra.open "select * from ANSWER where questionID="&ID,Conn
  application("answerA")=Ra("answerA") '题的选项
  application("answerB")=Ra("answerB")
  application("answerC")=Ra("answerC")
  application("answerD")=Ra("answerD")
  application("answerTrue")=Ra("answerTrue") '题的正确答案
  Ra.close
  set Ra=Nothing
  Conn.Close
  set Conn=Nothing
  application("questionTime")=Now()
  Application.UnLock
  %>
  <HTML>
  <head>
  <meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
  <Link Rel='stylesheet' Href='../Style.Css' Type='text/css'>
  <meta http-equiv="refresh" content="300;url=question.asp">
  <title><%=Application("V")%></title>
  <s cript Language="Javas cript">
  parent.ShowSays.document.write("******系统消息:******<br>"); //向聊天室显示对话窗口写入问题
  parent.ShowSays.document.write("**上题答对者为:<%=application"CanswerName")%><br>");
  parent.ShowSays.document.write("问题::<%=application("questionName")%>");
  parent.ShowSays.document.write(" <%=application("questionCent")%>分(1分钟之内,回答输入‘#答案’)<%=Time()%><br>");
  parent.ShowSays.document.write("A::<%=application("answerA")%><br>");
  parent.ShowSays.document.write("B::<%=application("answerB")%><br>");
  parent.ShowSays.document.write("C::<%=application("answerC")%><br>");
  parent.ShowSays.document.write("D::<%=application("answerD")%><br>");
  </s cript>
  </head>
  <body bgcolor='#FFFFFF'>
  </Body>
  </html>
  处理答题部分略!!! 答案处理部分,放在处理发送对话信息的程序中即可。下面是答案处理的代码部分: if mid(FStr,i,1)="#" then 'FStr是保存对话信息的字符串变量
  TFstr=mid(FStr,i+1,1)
  if CInt(DateDiff("n",application("questionTime"),Now()))<=1 then '判断时间1分钟内答题有效
  if LCase(TFstr)=LCase(application("answerTrue")) then '判断答题是否正确
  if instr(1,application("answerName"),session("USER_USERNAME"))>0 then '判断用户是否已经答过题了
  TFstr=session("USER_USERNAME")&"已经答过这道了!!!"
  else
  TFstr=session("USER_USERNAME")&"答题正确!"
  Session("USER_EXP") =Session("USER_EXP")+application("questionCent") '给答对题的用户加分
  application("answerName")=application("answerName")&session("USER_USERNAME")&" " '保存答对题用户的名字
  end if
  else
  if instr(1,application("TanswerName"),session("USER_USERNAME"))>0 then ''判断用户是否已经答过题了 TFstr=session("USER_USERNAME")&"已经答过这道了!!!"
  else
  application("TanswerName")=application("TanswerName")&session("USER_USERNAME")&" " '保存答错题用户的名字
  end if
  end if
  end if
上一篇:ASP短信发送程序 下一篇:在客户端执行数据库记录的分页显示
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·ASP下载系统防盗链方法
·尝尝ASP.NET中的小甜饼
·细细品味ASP.NET (四)
·ASP计数器设计详解-2
·升级MD5.ASP,打造完全动态不重
·用ASP设计网站在线人数统计程序
·ASP中使用SQL语句操作数据库
·ASP中函数调用对参数的影响
·Asp无组件文件上传的实例
·在ASP中使用SQL语句之2:用WHERE
相关文章
 
最新文章
·ASP下载系统防盗链方法
·ASP能读写注册表
·ASP 中健壮的页结构的异常处理
·在SQL Server中保存和输出图片
·使用ASP.NET加密口令
·web.config一个中文解释
·尝尝ASP.NET中的小甜饼
·用asp.net实现的把本文推荐给好
·开发BtoC电子商务系统(ASP.NET)
·保护 XML Web 服务免受黑客攻击
Google