- 热门文章:
- · 实现聊天室在线人员无刷新所需要的javascript技术 - 3
- · 实现聊天室在线人员无刷新所需要的javascript技术 - 2
- · 实现聊天室在线人员无刷新所需要的javascript技术 - 1
- · 动态增加\删除物件如(Text,Table)的例子
- · session的几个问题
- · 动态输入框的三个函数
- · 在ASP+中使用Cookie
- · Session对象在各浏览器中的有效范围
- · session的用法具体解说
- · ASP实现多语言支持
- · 关于web应用程序的范围与session变量丢失问题的深入研究!
- · 判断访问者的浏览器是否支持javascript和Cookies
一个使用多选框的小智力题,传教士与野人
尽管现在技术依旧很差,不过觉得写些小例子
真的可以很快进入角色。
<HTML>
<HEAD>
<title>传教士与野人</title>
</HEAD>
<script language= "Javascript">
var whereboat="left" //船的位置
function crossRiver()
{
var boat=0; //载人数目
//操作右河岸。
if(whereboat=="left")
{
for (var i=0;i<form1.leftbank.options.length;i++)
{
if(document.form1.leftbank.options[i].selected==true)
{
var Node =document.createElement("option"); //产生新的
Node.text=form1.leftbank.options[i].text; //给新的老名字
document.form1.rightbank.add(Node); //加入新的
form1.leftbank.options[i].text="" //标记为空(若直接删除会丢失selected==true)
boat++;
whereboat="right";
}
}
for (var i=0;i<form1.leftbank.options.length;i++)
{
if(form1.leftbank.options[i].text=="")
{form1.leftbank.options.remove(i);i--;} //集体铲除老的,注意由于remove产生缩进,所以i--
}
}
//操作左河岸。
if(whereboat=="right")
{
for (var i=0;i<form1.rightbank.options.length;i++)
{
if(form1.rightbank.options[i].selected==true)
{
var Node =document.createElement("option"); //产生新的
Node.text=form1.rightbank.options[i].text; //给新的老名字
document.all.leftbank.add(Node);
form1.rightbank.options[i].text="" //标记为空(若直接删除会丢失selected==true)
boat++;
whereboat="left";
}
}
for (var i=0;i<form1.rightbank.options.length;i++)
{
if(form1.rightbank.options[i].text=="")
{form1.rightbank.options.remove(i); //集体铲除老的
i--;
}
}
}
if(boat>2) {alert("超载!");window.location="javas.html";} //载人失败
boat=0;
//判断胜利与失败
var people=0;
var savage=0;
//左岸失败
for (var i=0;i<form1.leftbank.options.length;i++)
{if(form1.leftbank.options[i].text=="传教士") people++;
if(form1.leftbank.options[i].text=="野人") savage++;
}
if(savage>people & people>0) {alert("左河岸的传教士被野人吃掉了!");
window.location="javas.html"; }
//右河岸失败
people=0; savage=0;
for (var i=0;i<form1.rightbank.options.length;i++)
{if(form1.rightbank.options[i].text=="传教士") people++;
if(form1.rightbank.options[i].text=="野人") savage++;
}
if(savage>people & people>0)
{
alert("右河岸的传教士牺牲了!");
window.location="javas.html"; }
if(savage+people==6)
alert("传教士:终于过河了,与野人在一起好可怕!野人:呜瓦!这些人的肉太老了,咱们吃小孩去!");
}
</script>
<BODY bgcolor=navy text=aqua>
<br>
<center><h3>与野人一起过河</h3></center>
<CENTER><!--//定义左河岸-->
<table width=470 height=200 align=center>
<tr><td>
<h5>
有一天三个传教士来到一个野蛮人居住的地方进行传教,传说这个部落是吃人的氏族,在一条小河前,他们遇到了三个野人同时也要过河,六个人虎目眈眈,而河中只有一只仅容纳两人的小船。如果在度过小河的过程中,野人数目多于传教士,那么势单力孤的传教士就要被吃掉。而传教士又不能伤害野人。请你想个办法让六个人都安全的过河。
</h5></td></TD>
</tr>
</table></CENTER>
<form name=form1>
<center>
<SELECT name="leftbank" multiple size=6 style="WIDTH: 100px">
<OPTION >传教士</OPTION>
<OPTION>传教士</OPTION>
<OPTION>传教士</OPTION>
<OPTION>野人</OPTION>
<OPTION>野人</OPTION>
<OPTION>野人</OPTION>
</SELECT>
<INPUT onclick=crossRiver() type=button value=过河>
<!--定义右河岸-->
<SELECT multiple name="rightbank" size=6 style="WIDTH: 100px">
</SELECT>
</center>
</form>
<center>
<h5>(用Ctrl键多选)</h5>
</center>
</BODY>
</html>
相关文章:
- · 下拉框连动的小例子(.htm版)
- · 下拉框连动的小例子(数据库版)
- · 一个查看ASP的javascript程序,方便大家学习ASP程序,进来看看吧(JS)
- · Internet Explorer 错误代码
- · 判断访问者的浏览器是否支持javascript和Cookies
- · ASP实现多语言支持
- · 关于Global.asa文件的深入研究与session变量失效提示的具体方法
- · 关于在浏览器中执行*.exe文件的深入探讨
- · 获得客房端的MAC(Media Access Control)地址
- · 动态缓冲
- · 数据库聊天室的“无刷新”技术要点
- · 您的主页支持各种浏览设备(ASP+篇)(下)
- · 让您的主页支持各种浏览设备(ASP+篇)(上)
- · 让Session对象在不同域名下实现共享
- · 在WAP网站上建立反馈表单
- · 如何使ASP输出结果不支持html语法?
- · Microsoft Script Debugger说明书
- · 使用<meta>标签的ASP源程序例子
- · 彻底终结浏览器Cahce页面的解决方案
- · 关于如何动态地在同一页面实现两个<select>互传(s1 <==> s2)
- · ASP中巧用Response属性
- · 判断客户端是否支持cookie的脚本!
- · 一个类似vbscript的round函数的javascript函数
- · HEAD元素使用集锦
- · 最新的关于Cookies的操作
- · 高级表单验证-针对多次提交表单
- · 脚本控制Frame
- · ASP中Cookie使用指南
- · 在大型社区系统中用二维数组实现用户高级功能(1)
- · 在ASP应用中如何限制同一表单被多次提交
- · 自己动手,结合javascript和dhtml做一个ubb编辑器(附例子代码)
- · Asp与导航文件
- · 在FLASH中调用ASP
- · 列出 IE5 所支持的所有server端变量
- · 深入研究“用ASP上载文件”(二)
- · 深入研究“用ASP上载文件”(一)
- · 复杂表单的动态生成与动态验证
- · ADO 事件模型
