//在列表中,使鼠标移到之处的单词
//产生“点亮”的效果
function lightopt(ele)
{
var elesrc;
//——————————————
//常变量说明
//elesrc :发生事件的元素
//——————————————
elesrc = ele;
elesrc.classname = "optlighted";
}
//在列表中,使鼠标离开的单词
//还原为初始状态
function delightopt(ele)
{
var elesrc;
//——————————————
//常变量说明
//elesrc :发生事件的元素
//——————————————
elesrc = ele;
elesrc.classname = "optdelighted";
}
//得到定义过的将加入列表的单词
function makeopt(strword, iwrdidx)
{
var stropthead, stroptfoot;
var stroptword;
//——————————————
//常变量说明
//stropthead :重定义单词头。字符串型
//stroptfoot :重定义单词尾。字符串型
//stroptword :重定义单词。字符串型
//——————————————
stropthead = "<div class=optdelighted onmouseover=lightopt(this); onmouseout=delightopt(this); ondblclick=removeopt(this); wrdidx=" + iwrdidx + ">";
stroptfoot = "</div>";
stroptword = stropthead + strword + stroptfoot;
//alert(stroptword);
return stroptword;
}
//删除列表中的单词
function removeopt(ele)
{
var elesrc;
var iindex, iwrdidx;
var astrwords, astrhead, astrfoot;
//——————————————
//常变量说明
//elesrc :发生事件的元素
//iindex :表示词汇分类的数字。整型
//iwrdidx :单词在单词数组中的索引。整型
//astrwords :某类词汇单词数组。字符串型数组
//astrhead :某类词汇单词数组头部分。字符串型数组
//astrfoot :某类词汇单词数组尾部分。字符串型数组
//——————————————
elesrc = ele;
iindex = geteleindex(elesrc.parentelement);
iwrdidx = parseint(elesrc.wrdidx);
//将单词从词汇数组中删去
//showarray(m_astrwords[iindex]);
astrwords = m_astrwords[iindex].concat();
astrhead = astrwords.slice(0, iwrdidx);
astrfoot = astrwords.slice(iwrdidx + 1);
m_astrwords[iindex] = astrhead.concat(astrfoot);
//showarray(astrhead);
//showarray(astrfoot);
//showarray(m_astrwords[iindex]);
//将剩余的单词重新写入到页面中
valuelist(m_astrwords[iindex], iindex);
txtword[iindex].select();
}
//–>
</script>
</head>
<body>
<!–标题–>
<div align="center">
<span style="font-size: 20pt; font-weight: bold">词语搭配游戏</span>
<span class="fonteng2">v1.0</span>
</div>
<hr style="visibility: hidden">
<!–主表格1–>
<table border="0" align="center" width="80%">
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup align="center"></colgroup>
<colgroup></colgroup>
<%for m_icount = 0 to (m_ipartcnt – 1)%>
<tr>
<td><%= m_astrsenpart(m_icount)%></td>
<td width="20%"><input type="text" id="txtword" style="width: 100%"></td>
<td><button id="btngetword" style="width: 75px" title="将单词保存到内存中">保存</button></td>
<td><button id="btnreset" style="width: 75px" title="从内存中删去当前类别所有的单词">重置</button></td>
<td><button id="btnsave" style="width: 75px" title="将单词保存到文件中">存入</button></td>
<td><button id="btnload" style="width: 75px" title="从文件中载入单词">载入</button></td>
<td width="15%"><label id="lblwordlist" title="单击固定我">单词列表</label></td>
<td>
<div id="divwordlist" class="listhidden"></div>
个数:<label id="lblwordcount" class="fonteng1"><%= 0%></label>
</td>
</tr>
<%next%>
</table>
<hr style="visibility: hidden">
<hr style="color: blue">
<!–主表格2–>
<table border="0" align="center" width="80%">
<colgroup width="16%"></colgroup>
<colgroup width="16%"></colgroup>
<colgroup width="16%"></colgroup>
<colgroup></colgroup>
<tr>
<td><button id="btnresetall" accesskey="r" title="从内存中删去所有类别的单词" class="btndelighted">全部重置 <u>r</u></button></td>
<td><button id="btnsaveall" accesskey="s" title="将所有类别的单词保存到文件中" class="btndelighted">全部存入 <u>s</u></button></td>
<td><button id="btnloadall" accesskey="l" title="从文件中载入所有类别的单词" class="btndelighted">全部载入 <u>l</u></button></td>
<td>
<span style="font-size: 9pt; color: red;">请单击</span> <label id="lblhelp" title="单击固定我">游戏说明</label>
<!–帮助说明表格–>
<div id="divhelp" class="helphidden">
<table id="tblhelp" border="0" align="center" width="300px" style="font-size: 9pt;">
<colgroup width="75px"></colgroup>
<colgroup></colgroup>
<tr><td colspan="2">
<a href="#1" style="color: blue;">游戏步骤</a>
<a href="#2" style="color: blue;">操作说明</a>
<a href="#3" style="color: blue;">游戏起源</a>
<a href="#4" style="color: blue;">制作原因</a>
<a href="#5" style="color: blue;">游戏功效</a>
<a name="0" style="display: none;">top</a>
</td></tr>
<!–游戏步骤–>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">
[<a name="1" style="color: blue;">游戏步骤</a>]
<a href="#0" class="link">top</a>
</td></tr>
<tr><td colspan="2">
<span class="fonteng1"><1></span>在每个部分的<span class="fontemp">输入框</span>中输入单词, 按<span class="fontemp">回车</span>或<span class="fontemp">“保存”</span>按钮存入内存中;
或按<span class="fontemp">“载入”</span>按钮调出以前保存的某类别单词纪录;
或按<span class="fontemp">“全部载入”</span>按钮调出以前保存的所有类别单词纪录<br>
<span class="fonteng1"><2></span>按<span class="fontemp">“开始搭配”</span>按钮,系统将从各类单词中随机抽取一个,组成一个句子
</td></tr>
<!–操作说明–>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">
[<a name="2" style="color: blue;">操作说明</a>]
<a href="#0" class="link">top</a>
</td></tr>
<tr>
<td>保存</td>
<td>得到用户输入的单词</td>
</tr>
<tr>
<td>重置</td>
<td>将当前类别所有的单词从内存中删去</td>
</tr>
<tr>
<td>存入</td>
<td>将所选类别的当前词汇保存进文件中</td>
</tr>
<tr>
<td>载入</td>
<td>从文件中读取所选类别的单词纪录</td>
</tr>
<tr>
<td>全部重置</td>
<td>重置页面至初始状态</td>
</tr>
<tr>
<td>全部保存</td>
<td>把所有类别的单词都存入文件</td>
</tr>
<tr>
<td>全部载入</td>
<td>从文件中载入所有类别的单词</td>
</tr>
<tr>
<td>开始搭配</td>
<td>进行词汇搭配,得到一个句子</td>
</tr>
<tr><td></td></tr>
<tr><td colspan="2">
<span class="fonteng1"><1></span>
<span class="fontemp">将鼠标移至“单词列表”处</span>,会弹出该类词汇的单词列表;
<span class="fontemp">将鼠标移开</span>,列表会自动隐藏;
<span class="fontemp">点击“单词列表”</span>,会固定单词列表;
<span class="fontemp">再次点击</span>,会取消固定<br>
<span class="fonteng1"><2></span>
在<span class="fontemp">固定住一个单词列表</span>后,
<span class="fontemp">双击</span>该列表中的某个单词,可以将该单词从内存中删去<br>
<span class="fonteng1"><3></span>
输完一个单词后,<span class="fontemp">直接按回车</span>就可以保存了,这样比按“保存”保存单词更方便
</td></tr>
<!–游戏起源–>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">
[<a name="3" style="color: blue;">游戏起源</a>]
<a href="#0" class="link">top</a>
</td></tr>
<tr><td colspan="2">
这个游戏想法来自于小时候玩的纸团游戏。那时和姐姐在家里闲得无聊,就玩这个,哈哈。
玩法很简单,做一些纸片,分成四堆,分别写上<span class="fontemp">亲朋好友的名字</span>、<span class="fontemp">形容程度的词语</span>、<span class="fontemp">关于地点的词语</span>和<span class="fontemp">所做的事情</span>。
然后,将纸片捏成纸团,<span class="fonteng1">ok, lets start!</span> 现在从每堆中抽出一个纸团,就有四个词语,将它们组成一句话,因为是随便抽的,有时能组成很搞笑的句子。
如:陈楠兴奋地在大街上跳夏威夷草裙舞;万民悠闲地在公园里洗澡。^_+
</td></tr>
<!–制作原因–>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">
[<a name="4" style="color: blue;">制作原因</a>]
<a href="#0" class="link">top</a>
</td></tr>
<tr><td colspan="2">
主要是无聊,想做个游戏娱乐一下自己,当然也希望大家能从中得到笑声。
其次也想锻炼一下自己的技术,以前用<span class="fonteng1">vb</span>做过一个,不是很好,这次用的是<span class="fonteng1">asp</span>,不知有没有进步,呵呵
这个版本我大概地测试了一下,没发现大的<span class="fonteng1">bug</span>。如果您在游戏中发现了问题或有什么建议,请一定告诉我,在此先谢谢了!
我的信箱是<a href="mailto: iamchn@21cn.com" class="link">iamchn@21cn.com</a>。不好你就说吗!不可能你说好我又说不好,你不说好我又说好的,^_+
</td></tr>
<!–游戏功效–>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">
[<a name="5" style="color: blue;">游戏功效</a>]
<a href="#0" class="link">top</a>
</td></tr>
<tr><td colspan="2">
因为是搞笑游戏,所以能使你心情愉快、青春焕发,间接增加找对象的成功率;
因为不用做纸团了,减少了浪费和污染,从而美化了世界环境;
相信还有很多功效,请大家帮我找。哈哈。
</td></tr>
</table>
</div>
</td>
</tr>
<tr>
<td><button id="btnasb" accesskey="a" title="从每个类别词汇中随机抽取一个单词,组成一个句子"class="btndelighted">开始搭配 <u>a</u></button></td>
<td colspan="3"><input type="text" id="txtsentence" style="width: 100%"></td>
</tr>
</table>
<hr style="color: blue">
<!–提交表单–>
<form id="frmwords" method="post" action="" style="display: none;">
<%for m_icount = 0 to (m_ipartcnt – 1)%>
<input type="text" name="txtwords<%= m_icount%>">
<%next%>
<input type="text" name="txtsenpart">
<input type="text" name="txtopway">
</form>
<!–版权–>
<div align="center">
<div>
© <span class="fonteng2">2001 china sentin sci. & tech. co., ltd.</span>
<span class="fonteng2">all rights reserved.</span>
</div>
<div>
<span class="fonteng2">authored by</span> <a href="mailto: iamchn@21cn.com" class="link">recon</a></span>
<a href="http://recon.top263.net/" class="link">http://recon.top263.net/</a>
</div>
</div>
</body>
</html>
<%
以下是服务器端脚本
用到的函数和过程
************************
函数名 :savefile
功能 :将某类词汇保存到文件中
输入 :1、isenpart :表示词汇分类的数字。整型
可能的值有:
0:主语
1:程度状语
2:地点状语
3:谓语
输出 :对文件操作后的状态值。整型
可能的值有:
0:操作成功
1:操作失败
************************
function savefile(isenpart)
dim fsomain, tsfwords
dim icount, iwrdcnt
dim iopstatus
——————————————
常变量说明
fsomain :fso对象
tsfwords :textstream对象
icount :计数器。整型
iwrdcnt :某类词汇单词的数目。整型
iopstatus :文件操作完毕后的状态。整型
——————————————
set fsomain = server.createobject("scripting.filesystemobject")
set tsfwords= fsomain.createtextfile(m_strfilepath & m_astrfilename(isenpart), true)
tsfwords.writeline("[" & m_astrsenpart(isenpart) & "部分]")
如果该类别至少有一个单词
if isempty(m_astrwords(isenpart)) = false then
iwrdcnt = ubound(m_astrwords(isenpart)) + 1
for icount = 0 to (iwrdcnt – 1)
tsfwords.writeline(m_astrwords(isenpart)(icount))
next
end if
tsfwords.close
iopstatus = 0
savefile = iopstatus
end function
************************
函数名 :loadfile
功能 :从文件中载入某类词汇
输入 :1、isenpart :表示词汇分类的数字。整型
可能的值有:
0:主语
1:程度状语
2:地点状语
3:谓语
输出 :对文件操作后的状态值。整型
可能的值有:
0:操作成功
1:操作失败
************************
function loadfile(isenpart)
dim fsomain, tsfwords
dim strloaded
dim iopstatus
——————————————
常变量说明
fsomain :fso对象
tsfwords :textstream对象
strloaded :某类词汇所有单词构成的字符串。字符串型
iopstatus :文件操作完毕后的状态。整型
——————————————
set fsomain = server.createobject("scripting.filesystemobject")
if fsomain.fileexists(m_strfilepath & m_astrfilename(isenpart)) = true then
如果存在纪录文件
strloaded = ""
set tsfwords= fsomain.opentextfile(m_strfilepath & m_astrfilename(isenpart), 1)
tsfwords.skipline
do while tsfwords.atendofstream = false
strloaded = strloaded & tsfwords.readline & ","
loop
if strloaded <> "" then
strloaded = left(strloaded, len(strloaded) – 1)
m_astrwords(isenpart) = split(strloaded, ",")
else
m_astrwords(isenpart) = empty
end if
tsfwords.close
iopstatus = 0
else
如果不存在纪录文件
iopstatus = 1
end if
loadfile = iopstatus
end function
%>
<%
以下是服务器端脚本
用于测试的函数和过程
sub show(strdef)
response.write strdef & ": " & eval(strdef) & "<br>"
end sub
sub showmethod()
response.write "request method: " & request.servervariables("request_method") & "<br>"
end sub
sub showform()
dim icount
dim strprop
icount = 0
response.write "*********form information******<br>"
for each strprop in request.form
icount = icount + 1
response.write icount & "." & strprop & ": " & request.form(strprop) & "<br>"
next
response.write "*********form end**************<br>"
end sub
%>
