动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Asp → 阅读文章

 一个使用多选框的小智力题,传教士与野人

作者来源: 
阅读 5324 人次 , 2000-12-2 

这是我学javascript的第一个小例子。
尽管现在技术依旧很差,不过觉得写些小例子
真的可以很快进入角色。

<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>
  

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:一个用来画图的组件(画饼图,条形图,各种形状图象的组件)
· 下一篇:利用OWC服务器端组件动态生成图表
· 解析ASP的Application和Session对象
· 每页都有的表头和打印分页
· ASP与JSP的比较(二) (转)
· 制做行背景颜色交替变换的表格
· 又一种在线人数统计方法(只用1个APPLICATION)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077