打印本文 打印本文  关闭窗口 关闭窗口
词语搭配游戏的制作(ASP)一
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005/9/10 13:15:42
  说明:
  这是个关于词语搭配的游戏,是用ASP、VBScript和JavaScript写的。
  在本机Win98 OEM2、PWS、IE5下测试下没发现大问题。

  使用方法:
  方法一:比方说你的3W服务的目录是C:Inetpubwwwroot,在下面建一个目录,如wordAsb;
将游戏文件(wordAsb.asp)拷入目录中;在IE的地址栏中键入http://+你的机器名+/wordAsb/wordAsb.asp
或http://127.0.0.1/wordAsb/wordAsb.asp,回车,就可以开始游戏了

  方法二:将游戏文件(wordAsb.asp)随便拷入一新建的目录。鼠标右键点击该目录,菜单中选“属性”,
点“Web Sharing”属性页,点选“Share this folder”项,点“OK”就可以了。
在IE的地址栏中键入http://+你的机器名+/新建目录的名称/wordAsb.asp
或http://127.0.0.1/+新建目录的名称+/wordAsb.asp,回车,就可以开始游戏了

注:您的机子OS应该是NT或Win2000 Server或其他OS但是装有PWS

  游戏方法:
  单击游戏中的“游戏说明”就知道了;
如果有时页面一片空白,请按F5刷新一遍(这也是目前最大的bug吧),不知为什么
代码如下:
<%@ Language = VBScript%>
<%
Option Explicit
'Last Updated By Recon On 03/16/2001

Dim m_iPartCnt
Dim m_strPrompt
Dim m_astrSenPart(), m_astrFileName()
Dim m_astrWords(), m_aiOpStatus()

'------------------------------------------
'常变量说明
'm_iPartCnt :词汇分类的数目。整型
'm_strPrompt :对文件操作完毕后的提示。字符串型
'm_astrSenPart :词汇分类的名称。字符型数组
'm_astrFileName :记录各类词汇文件的文件名。字符型数组
'm_astrWords :纪录各类词汇。二维字符型数组
'm_aiOpStatus :纪录对各个文件操作后的状态。整型数组
'------------------------------------------

'ShowMethod
m_iPartCnt = 4
m_strPrompt = ""
ReDim m_astrSenPart(m_iPartCnt)
ReDim m_astrFileName(m_iPartCnt)
ReDim m_astrWords(m_iPartCnt)
ReDim m_aiOpStatus(m_iPartCnt)

'定义各种词汇分类的名称
m_astrSenPart(0) = "主语"
m_astrSenPart(1) = "程度状语"
m_astrSenPart(2) = "地点状语"
m_astrSenPart(3) = "谓语"

'定义记载各类词汇文件的名称
m_astrFileName(0) = "Who.txt"
m_astrFileName(1) = "How.txt"
m_astrFileName(2) = "Where.txt"
m_astrFileName(3) = "What.txt"

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'如果页面的请求方式是 POST

'************************
'获得客户端的信息
'************************
Dim m_iSenPart
Dim m_strOpWay
Dim m_bRptedData

'------------------------------------------
'常变量说明
'm_iSenPart :表示词汇分类的数字。整型
' 词汇的分类来自数组m_astrSenPart
' 可能的值有:
' 0:主语
' 1:程度状语
' 2:地点状语
' 3:谓语

'm_strOpWay :文件操作方式。字符串型
' 可能的值有:
' 1、SAVE :将某类词汇存入文件
' 2、SAVEALL :将所有类别的词汇存入文件
' 3、LOAD :从文件中载入某类词汇
' 4、LOADALL :从文件中载入所有类别的词汇

'm_bRptedData :表示本次提交的表单数据和上次是否相同。布尔型
' 可能的值有:
' 1、False :表单数据不重复
' 2、True :表单数据重复(即重复提交表单)
'------------------------------------------

'ShowForm
'获得用户请求的操作方式
m_strOpWay = Request.Form("txtOpWay")
'Show("m_strOpWay")

'获得各个类别的单词
For m_iCount = 0 To (m_iPartCnt - 1)
If Request.Form("txtWords" & m_iCount) <> "" Then
m_astrWords(m_iCount) = Split(Request.Form("txtWords" & m_iCount), ",")
End If
'Response.Write UBound(m_astrWords(m_iCount)) & "<br>"
Next

'检测是否重复提交表单
'If Session("FormInf") = Request.Form Then
' '表单是重复提交
' m_bRptedData = True
'Else
' '表单是非重复提交
' Session("FormInf") = Request.Form
' m_bRptedData = False
'End If
'Show("m_bRptedData")

'************************
'对单词文件进行操作
'************************
'If m_bRptedData = False Then

Dim m_iCount, m_iErrCnt
Dim m_strFilePath

'------------------------------------------
'常变量说明
'm_iCount :计数器。整型
'm_iErrCnt :发生操作失败的次数。整型
'm_strFilePath :记录各类词汇文件的路径。字符串型
'------------------------------------------

'获得放置词汇文件的路径
m_strFilePath = Request.ServerVariables("PATH_TRANSLATED")
m_strFilePath = Left(m_strFilePath, InStrRev(m_strFilePath, ""))
'm_strFilePath = m_strFilePath & "Words"
'Show("m_strFilePath")

'开始操作文件
'Response.Write "Begin to Operate Word Files<br>"
Select Case m_strOpWay
Case "SAVE"
'保存单词到文件中
m_iSenPart = CInt(Request.Form("txtSenPart"))
m_aiOpStatus(m_iSenPart) = SaveFile(m_iSenPart)

'根据操作状态,得到提示信息
Select Case m_aiOpStatus(m_iSenPart)
Case 0
m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分单词已成功地被保存到文件中"

Case 1
m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分文件保存失败"
End Select

Case "SAVEALL"
'保存所有类别的单词到文件中
m_iErrCnt = 0
For m_iCount = 0 To (m_iPartCnt - 1)
m_aiOpStatus(m_iCount) = SaveFile(m_iCount)
If m_aiOpStatus(m_iCount) = 1 Then
m_iErrCnt = m_iErrCnt + 1
End If
Next

'根据操作状态,得到提示信息
Select Case m_iErrCnt
Case 0
m_strPrompt = "所有类别的单词都已成功地被保存到文件中"

Case m_iPartCnt
m_strPrompt = "所有类别的单词文件都保存失败"

Case Else
m_strPrompt = "其中,"
For m_iCount = 0 To (m_iPartCnt - 1)
If m_aiOpStatus(m_iCount) = 1 Then
m_strPrompt = m_strPrompt & "[" & m_astrSenPart(m_iCount) & "]、"
End If
Next
m_strPrompt = Left(m_strPrompt, Len(m_strPrompt) - 1)
m_strPrompt = m_strPrompt & "部分文件保存失败"
End Select

Case "LOAD"
'从文件中载入单词
m_iSenPart = CInt(Request.Form("txtSenPart"))
m_aiOpStatus(m_iSenPart) = LoadFile(m_iSenPart)

'根据操作状态,得到提示信息
Select Case m_aiOpStatus(m_iSenPart)
Case 0
m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分单词已成功地被载入"

Case 1
m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分文件不存在,载入失败"
End Select

Case "LOADALL"
'从各个文件中载入单词
m_iErrCnt = 0
For m_iCount = 0 To (m_iPartCnt - 1)
m_aiOpStatus(m_iCount) = LoadFile(m_iCount)
If m_aiOpStatus(m_iCount) = 1 Then
m_iErrCnt = m_iErrCnt + 1
End If
Next

'根据操作状态,得到提示信息
Select Case m_iErrCnt
Case 0
m_strPrompt = "所有类别的单词都已成功地被载入"

Case m_iPartCnt
m_strPrompt = "所有类别的单词文件都不存在,载入完全失败"

Case Else
m_strPrompt = "其中,"
For m_iCount = 0 To (m_iPartCnt - 1)
If m_aiOpStatus(m_iCount) = 1 Then
m_strPrompt = m_strPrompt & "[" & m_astrSenPart(m_iCount) & "]、"
End If
Next
m_strPrompt = Left(m_strPrompt, Len(m_strPrompt) - 1)
m_strPrompt = m_strPrompt & "部分文件不存在,载入部分失败"
End Select
End Select

'End If
End If
'Response.Write "End to Operate Word Files<br>"
'Response.Write "Begin to Write Client Page<br>"
%>

<html>
<head>
<title> 词语搭配游戏 </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">

<!--风格表-->
<style>
<!--
/*英文字体1*/
.fontEng1
{
font-family: TIMES NEW ROMAN;
font-style: ;
}

/*英文字体2*/
.fontEng2
{
font-family: TIMES NEW ROMAN;
font-style: ITALIC;
}

/*强调字体*/
.fontEmp
{
color: RED;
}

/*链接*/
.link
{
font-family: TIMES NEW ROMAN;
font-style: ITALIC;
text-decoration: NONE;
}

/*被显示的单词列表*/
.listShown
{
position: ABSOLUTE;
width: 140px;
height: 200px;
display: INLINE;
border: LIGHTCORAL 1px SOLID;
background-color: GAINSBORO;
}

/*被隐藏的单词列表*/
.listHidden
{
position: ABSOLUTE;
width: 140px;
height: 200px;
display: NONE;
border: LIGHTCORAL 1px SOLID;
background-color: GAINSBORO;
}

/*被固定的单词列表*/
.listFixed
{
position: ABSOLUTE;
width: 140px;
height: 200px;
display: INLINE;
border: RED 1px SOLID;
background-color: GAINSBORO;
}

/*被显示的帮助列表*/
.helpShown
{
position: ABSOLUTE;
width: ;
height: ;
display: block;
border: LIGHTCORAL 1px SOLID;
background-color: GAINSBORO;
}

/*被隐藏的帮助列表*/
.helpHidden
{
position: ABSOLUTE;
width: ;
height: ;
display: NONE;
border: LIGHTCORAL 1px SOLID;
background-color: GAINSBORO;
}

/*被固定的帮助列表*/
.helpFixed
{
position: ABSOLUTE;
width: ;
height: ;
display: block;
border: RED 1px SOLID;
background-color: GAINSBORO;
}

/*被强调显示的标签*/
.lblMOver
{
text-decoration: NONE;
color: LIGHTCORAL;
background-color: ;
}

/*正常显示的标签*/
.lblMOut
{
text-decoration: NONE;
color: ;
background-color: ;
}

/*被点击过的标签*/
.lblClicked
{
text-decoration: UNDERLINE;
color: RED;
background-color: ;
}

/*高亮显示的按钮*/
.btnLighted
{
width: 105px;
color: BLUE;
background-color: ;
}

/*正常显示的按钮*/
.btnDelighted
{
width: 105px;
color: ;
background-color: ;
}

/*高亮显示的单词列表项*/
.optLighted
{
text-decoration: UNDERLINE;
color: BLUE;
background-color: ;
cursor: HAND;
}

/*正常显示的单词列表项*/
.optDelighted
{
text-decoration: NONE;
color: ;
background-color: ;
cursor: ;
}
-->
</style>

<!--客户端脚本-->
<script language="JavaScript">
<!--
//客户端公用及测试函数
//************************
//函数名 :lTrim
//功能 :去掉字串左边的空格
//输入 :1、strTemp :要规整的字串。字符串型
//输出 :规整后的字串。字符串型
//************************
function lTrim(strTemp)
{
var iCount, iLength;
//------------------------------------------
//常变量说明
//iCount :计数器。整型
//iLength :字串的长度。整型
//------------------------------------------

iLength = strTemp.length;
for (iCount = 0; iCount < iLength; iCount ++)
if (strTemp.charAt(iCount) != " ")
return strTemp.substring(iCount, iLength);

return "";
}

//************************
//函数名 :rTrim
//功能 :去掉字串右边的空格
//输入 :1、strTemp :要规整的字串。字符串型
//输出 :规整后的字串。字符串型
//************************
function rTrim(strTemp)
{
var iCount, iLength;
//------------------------------------------
//常变量说

[1] [2]  下一页



打印本文 打印本文  关闭窗口 关闭窗口