您的位置:首页网页设计ASP实例 → 词语搭配游戏的制作(ASP)一

词语搭配游戏的制作(ASP)一

时间:2004/11/7 3:00:00来源:本站整理作者:蓝点我要评论(0)

说明:

  这是个关于词语搭配的游戏,是用ASP、VBScript和JavaScript写的。

  在本机Win98 OEM2、PWS、IE5下测试下没发现大问题。



  使用方法:

  方法一:比方说你的3W服务的目录是C:\Inetpub\wwwroot,在下面建一个目录,如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;

//------------------------------------------

//常变量说明

//iCount :计数器。整型

//iLength :字串的长度。整型

//------------------------------------------



iLength = strTemp.length;

for(iCount = iLength - 1; iCount >= 0; iCount --)

if (strTemp.charAt(iCount) != " ")

return strTemp.substring(0, iCount + 1);



return "";

}



//************************

//函数名 :trim

//功能 :去掉字串两边的空格

//输入 :1、strTemp :要规整的字串。字符串型

//输出 :规整后的字串。字符串型

//************************

function trim(strTemp)

{

return rTrim(lTrim(strTemp));

}



//将2位数字转换成2位数字字串

//************************

//函数名 :get2bNumStr

//功能 :转换2位的数字成2位的数字字串

//输入 :1、iNumber :要转换的数字。整型

//输出 :转换后得到的数字字串。整型

//************************

function get2bNumStr(iNumber)

{

var str2bNum;

//------------------------------------------

//常变量说明

//str2bNum :数字字串。字符串型

//------------------------------------------



if (parseInt(iNumber) < 10)

str2bNum = "0" + iNumber;

else

str2bNum = "" + iNumber;



return str2bNum;

}



//************************

//函数名 :assignFunc

//功能 :指定元素的事件处理函数

//输入 :1、ele :要指定事件处理函数的元素。对象型

// 2、func :事件处理函数。函数型

// 3、event :事件类型。字符串型

//输出 :无

//************************

function assignFunc(ele, func, event)

{

var iCount, iEleCount;

var strEvent;



//------------------------------------------

//常变量说明

//iCount :计数器。整型

//iEleCount :同名元素集合中元素的个数。整型

//strEvent :事件类型。字符串型

//------------------------------------------



if (event == null)

strEvent = "onclick";

else

strEvent = event;



iEleCount = ele.length;

if (iEleCount == undefined)

eval("ele." + strEvent + " = " + func);

else

for (iCount = 0; iCount < iEleCount; iCount ++)

eval("ele[iCount]." + strEvent + " = " + func);

}



//************************

//函数名 :getEleIndex

//功能 :得到发生事件的元素在同名集合中的索引

//输入 :1、eleSrc :发生事件的元素。对象型

//输出 :发生事件的元素在同名集合中的索引

//************************

function getEleIndex(eleSrc)

{

var colSrc;

var iCount, iEleCount;



//------------------------------------------

//常变量说明

//colSrc :同名元素集合。对象型数组

//iCount :计数器。整型

//iEleCount :同名元素集合中元素的个数。整型

//------------------------------------------



colSrc = eval(eleSrc.id);

iEleCount = colSrc.length;

for (iCount = 0; iCount < iEleCount; iCount ++)

{

if (colSrc[iCount] == eleSrc)

return iCount;

}



return -1;

}



//显示常变量的值(调试用)

//!准备删去

function show(strDef1, strDef2, strDef3, strDef4)

{

var iCount, iDefCnt;

var strShow, strTemp;



iDefCnt = 4;

strShow = "[常变量值]";

for (iCount = 1; iCount <= iDefCnt; iCount ++)

{

strTemp = eval("strDef" + iCount);

if (strTemp != undefined && strTemp != null)

strShow += "\n" + strTemp + ": " + eval(strTemp);

}



alert(strShow);

}



//************************

//函数名 :showArray

//功能 :显示一维数组的元素(调试用)

//输入 :1、array :要显示的一维数组。数组

//输出 :无

//************************

function showArray(array)

{

var iCount, iEleCount;

var strShow;



//------------------------------------------

//常变量说明

//iCount :计数器。整型

//iEleCount :数组元素的个数。整型

//strShow :数组元素值构成的字串。字符串型

//------------------------------------------



iEleCount = array.length;

strShow = "Array Length: " + iEleCount;

strShow += "\n---------------------------------\n";



for (iCount = 0; iCount < iEleCount; iCount ++)

{

if (typeof(array[iCount]) == "object")

strShow += array[iCount].id + " ";

else

strShow += array[iCount] + " ";

}



alert(strShow);

}



//************************

//函数名 :show2DArray

//功能 :显示二维数组的元素(调试用)

//输入 :1、array :要显示的二维数组。数组

//输出 :无

//************************

function show2DArray(array)

{

var iX, iY, iLen1, iLen2;

var strShow;



//------------------------------------------

//常变量说明

//iX :计数器。整型

//iY :计数器。整型

//iLen1 :数组一维的数目。整型

//iLen2 :数组二维的数目。整型

//strShow :数组元素值构成的字串。字符串型

//------------------------------------------



iLen1 = array.length;

strShow = "Array 1D Length: " + iLen1;

strShow += "\n---------------------------------";



for (iX = 0; iX < iLen1; iX ++)

{

strShow += "\n";

iLen2 = array[iX].length;

for (iY = 0; iY < iLen2; iY ++)

strShow += array[iX][iY] + " ";

}



alert(strShow);

}

//-->

</script>



<script language="JavaScript">

<!--

//--------------------函数列表--------------------------

//window_onload

//

//getWord

//reset

//save

//load

//

//showList

//hideList

//fixList

//valueList

//

//showHelp

//hideHelp

//fixHelp

//

//resetAll

//saveAll

//loadAll

//assemble

//

//lightBtn

//delightBtn

//lightOpt

//delightOpt

//

//makeOpt

//removeOpt

//-----------------------------------------------------------



var m_iPartCnt;

var m_astrSenPart, m_astrWords;

var m_strPrompt;

var m_iListFixed, m_iHelpFixed;



//------------------------------------------

//常变量说明

//m_iPartCnt :词汇分类的数目。整型

//m_astrSenPart :词汇分类的名称。字符型数组

//m_astrWords :纪录各类词汇。二维字符型数组

//m_strPrompt :文件操作完毕后的提示信息。字符串型

//m_iListFixed :代表被固定单词列表的数字。整型

// -1表示没有单词列表被固定

//m_iHelpFixed :表示帮助列表固定状态的数字。整型

// -1表示帮助列表没有被固定

//------------------------------------------



window.onload = window_onload;

//-----------------------------------------------------------

//初始化页面

function window_onload()

{

var iCount, iEleCnt;

var colButton;

var strHelp;



//------------------------------------------

//常变量说明

//iCount :计数器。整型

//iEleCnt :集合中元素的个数。整型

//colButton :BUTTON元素的集合。对象型数组

//strHelp :帮助文件内容。字符串型

//------------------------------------------



m_iPartCnt = <%= m_iPartCnt%>;

m_strPrompt = "<%= m_strPrompt%>";

m_iListFixed = -1;

m_iHelpFixed = -1;

m_astrSenPart = new Array();

m_astrWords = new Array();

//alert("m_iPartCnt: " + m_iPartCnt + "\nm_strPrompt: " + m_strPrompt);



//得到词汇分类的名称和已载入的各类词汇

<%For m_iCount = 0 To (m_iPartCnt - 1)%>

//得到已载入的各类词汇

<%If IsEmpty(m_astrWords(m_iCount)) = True Then%>

m_astrWords[<%= m_iCount%>] = new Array();

<%Else%>

m_astrWords[<%= m_iCount%>] = "<%= Join(m_astrWords(m_iCount), ",")%>".split(",");

<%End If%>



//得到词汇分类的名称

m_astrSenPart[<%= m_iCount%>] = "<%= m_astrSenPart(m_iCount)%>";

<%Next%>

//show2DArray(m_astrWords);

//showArray(m_astrSenPart);



//将已载入的各类词汇写入到页面中

for (iCount = 0; iCount < m_iPartCnt; iCount ++)

valueList(m_astrWords[iCount], iCount);



//载入帮助文件

//strHelp = tblHelp.outerHTML;

//strHelp = divHelp1.innerHTML;

//tblHelp.outerHTML = "";

//divHelp.innerHTML = strHelp;

//tblHelp.style.display = "";

//divHelp.style.display = "NONE";

//divHelp.style.left = divHelp1.style.left;

//alert("left: "+divHelp.style.left + "\nleft: " + divHelp1.style.left);

//alert("pixelleft: "+divHelp.style.pixelLeft + "\npixelleft: " + divHelp1.style.pixelLeft);

//alert("posLeft: "+divHelp.style.posLeft + "\nposLeft: " + divHelp1.style.posLeft);

//alert("offsetLeft : "+divHelp.offsetLeft + "\noffsetLeft : " + divHelp1.offsetLeft );

//alert("clientLeft : "+divHelp.clientLeft + "\nclientLeft : " + divHelp1.clientLeft );



//指定页面元素的事件处理函数

assignFunc(txtWord, getWord, "onkeypress");

assignFunc(btnGetWord, getWord);

assignFunc(btnReset, reset);

assignFunc(btnSave, save);

assignFunc(btnLoad, load);

assignFunc(lblWordList, showList, "onmouseover");

assignFunc(lblWordList, hideList, "onmouseout");

assignFunc(lblWordList, fixList);

assignFunc(lblHelp, showHelp, "onmouseover");

assignFunc(lblHelp, hideHelp, "onmouseout");

assignFunc(lblHelp, fixHelp);

assignFunc(btnResetAll, resetAll);

assignFunc(btnSaveAll, saveAll);

assignFunc(btnLoadAll, loadAll);

assignFunc(btnAsb, assemble);



colButton = document.all.tags("BUTTON");

iEleCnt = colButton.length;

//showArray(colButton);

//alert("iEleCnt: " + iEleCnt);

for (iCount = 0; iCount < iEleCnt; iCount ++)

{

assignFunc(colButton[iCount], lightBtn, "onmouseover");

assignFunc(colButton[iCount], delightBtn, "onmouseout");

}



//设置页面初始状态

if (m_strPrompt != "")

alert(m_strPrompt);

txtWord[0].focus();

}




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 迅雷新手完全入门手册 asp下面javascript上传图片限制格式大小方法告诉大家网页弹出窗口应用总结ASP常见错误类型大全asp常见错误分析和解决办法

人气排行 总是弹出visual studio 实时调试器 三种解决SQLSERVER存储过程及调用详解Asp获取真实IP地址ASP中连接Mssql的几种方法一个简单好用的UBB编辑器(含代码)如何用Split将字符串转换为数组并获取数组下ASP防止表单重复提交的办法告诉你免费的简单聊天室源代码