asp如何在聊天室实现趣味答题并计分功能?
发布时间:2010-06-18 20:00:00
如何在聊天室实现趣味答题并计分功能?
这个创意确实很好,我们可用在聊天室框架中加入一隐含帧(5分钟刷新一次)的做法来实现这一功能。
question.asp
' 隐含帧内的页面
<%@ language=vbscript%>
<%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>
<script language="javascript">
parent.showsays.document.write("asp之家聊天室系统消息:<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>");
</script>
</head>
<body bgcolor='#ffffff'>
</body>
</html>
answer.asp
' 答案处理部分.位于处理发送对话信息的程序中
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


猜你喜欢
- 递归函数及递归次数受到限制一个函数在内部调用自己,那么这个函数是递归函数。递归会反复使用本身,每递归一次,越接近最终的值。当一个问题可以由许
- 服务器代理proxyTable配置解决跨域1、Proxy代理作用proxy代理作用:前端服务器代理的作用是,告诉服务器任何未知请求(没有匹配
- 1、ElementUi文档已经说了,如果需要后端排序,需将sortable设置为custom,同时在 Table 上监听sort-chang
- 定义一个绘制甘特图的类# -*- coding: utf-8 -*-from datetime import datetimeimport
- <html> <head> <title>JavaScript Data Access Test<
- 对python网页请求模块urllib2进行简单的封装。例子:#!/usr/bin/python#coding: utf-8import b
- 一、os函数目录1 os.access(path, mode) 检验权限模式2 os.chdir(path) 改变当前工
- 递归是以相似的方式重复项目的过程。同样适用于编程语言中,如果一个程序可以让你调用同一个函数被调用的函数,递归调用函数内使用如下。func r
- 简单的2048小游戏不多说,直接上图,这里并未实现GUI之类的,需要的话,可自行实现:接下来就是代码模块,其中的2048游戏原来网络上有很多
- 1.首先在Xshell上通过conda创建新的虚拟环境2.此时在 /home/y210101004/.conda/envs下多了刚
- 1.安装anaconda(anaconda内置python在内的许多package,所以不用另外下载python)可以点击下面的清华开源软件
- 如果直接对大文件对象调用 read() 方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。即通过yield。
- 其实 selenium启动窗口的时候就是 使用了subprocess.Popen 启动的驱动程序的,只要在启动的时候加上启动不显示窗口的参数
- 本文实例为大家分享了Python实现图像增强的具体代码,供大家参考,具体内容如下题目描述:对于下面这幅图像(图 1),请问可以通过那些图像增
- PyScript可以让你在浏览器中直接运行Python脚本,与JavaScript并排,在你的代码和网页之间进行双向互动。由Anaconda
- Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理
- 本文实例讲述了python中查看变量内存地址的方法。分享给大家供大家参考。具体实现方法如下:这里可以使用id>>> pri
- mysql-5.7.19-winx64 免安装版配置方法,供大家参考,具体内容如下1.官方网站下载mysql-5.7.19-winx64,注
- 站长们是不是还在为空间不支持域名绑定到子目录而发愁呢?买了个便宜也不错的空间,用的还满意,准备再开几个网站,却发现空间程序太落后,无法支持域
- 购物车的设计目标 从程序员的观点来看,购物车是维护购物者商品选购、允许察看、允许修改的一个对象。购物车本身是一个非常简单的程序,但开发者要考