明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

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

[摘要]这是我学javascript的第一个小例子。 尽管现在技术依旧很差,不过觉得写些小例子 真的可以很快进入角色。 <HTML> <HEAD> <title>传教士与野人</title> </HEAD> <script language...

这是我学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>