Window对象共有七个属性:
● status:指定当前窗口状态栏中的信息。
● frames:是一个数组,其中内容是窗口中所有的框架。
● parent:指当前窗口的父窗口。
● self:指当前窗口。
● top:代表当前所有窗口的最顶层窗口。
● window:代表当前窗口。
Window对象有五个方法:
● alert:显示带有一个“确定”按钮的对话框。
● confirm:显示带有“确定”与“取消”两个按钮的对话框。
● prompt:显示带有输入区的对话框。
● open:打开一个新窗口。
● close:关闭用户打开的窗口。
三、status属性例子,在窗口状态栏显示和清除文字
单击"写入文字"按钮,在状态栏显示'这是状态栏'。按"清除文字"按钮,清除状态栏的文字。
<html>
<head>
<script language="JavaScript">
function statbar(txt) {
window.status = txt}
</script>
</head>
<body>
<form>
<input type="button" name="look" value="写入文字" onclick="statbar('这是状态栏')">
<input type="button" name="erase" value="清除文字" onclick="statbar('')">
</form>
</body>
</html>
四、alert方法例子:显示“大家来学习JavaScript脚本语言。”的对话框。
<html>
<body>
<script language="JavaScript">
alert("大家来学习JavaScript脚本语言。")
</script>
</body>
</html>
五、 Confirm方法例子:让用户选择是否进入下一页。
用confirm显示选择对话框,按“确定”进入next.htm,按“取消”不进入。
<html>
<body>
<script language="JavaScript">
if(confirm("你想进入下一页吗?"))
location="next.htm"
</script>
</body>
</html>
六、Prompt方法例子:让用户输入姓名,并将它显示出来。
用prompt显示输入对话框,让用户输入姓名,再用alert对话框显示出来。
<html>
<body>
<script language="JavaScript">
var name
name=prompt("请输入姓名","张国强")
alert("你好,"+name)
</script>
</body>
</html>
七、Window对象方法例子
当打开网页时,立即打开另一窗口,显示test.htm。
<html>
<body onload="javascript:window.open('test.htm')">
</body>
</html>
八、History对象的属性和方法
History对象只有一个length属性,它表示历史对象中的链接的数目。
History对象有以下方法:
● back:在浏览器中显示上一页。
● forward:在浏览器中显示上下页。
● go(int):在浏览器中载入从当前算起的第int个页面。
九、History例子:具有“上一页”、“下一页”按钮的页面。
<html>
<body>
<form>
<input type="button" value="上一页" onClick="history.back()">
<input type="button" value="下一页" onClick="history.forward()">
</body>
</html>
这次我们使用 Python 来实现生命游戏,这是一种简单的元胞自动机。基于一定规则,程序可以自动从当前状态推演到下一状态。制作的成品如下:
先来说说生命游戏的规则:
在生命游戏中,每个单元格有两种状态,生与死。在我们的实现中,黄色的单元格代表活着的细胞,红色单元格表示死亡的细胞。而每一个细胞的下一状态,是由该细胞及周围的八个细胞的当前状态决定的。
具体而言:
当前细胞为活细胞
当前细胞为死细胞
无需安装的标准库:
第三方库:
导入模块:
首先,我们要知道细胞的生存空间是 N * N 的方阵,每个细胞都有两种状态:on, off。on 为 255,off 为 0。我们使用 numpy 产生 N * N 的方阵。np.random.choice 是在 State.on 和 State.off ,等概率随机抽取一个元素构造 N * N 的方阵。
其次我们要明白如何计算细胞周围活细胞的个数,尤其是边界一圈的细胞。我们可以采用余数的方式,假设棋盘大小为 9 * 9,那么对于左右边界而言,左边界的左边一个元素的计算方式: - 1 % 9 = 8,自动折到右边界上。将细胞周围八个单元格的数值加起来,除以 255,就可以得到细胞周围活细胞的个数。
接下来是对规则的翻译,即根据当前世代的状态,推演出下一世代,细胞的状态。initial 为当前世代的矩阵,data为下一世代的矩阵,我们根据 initial 的数值,计算出 data 的数值。total 为周围活细胞的个数,如果当前为活细胞,total 大于三或者小于二,下一世代就会死去。如果当前为死细胞,total 等于三,下一世代活细胞就会繁殖到该单元格上。
接下来是制作动图的过程,前面几行是绘图的基本 *** 作。之后,我们使用到了 matplotlib.animation 的方法。其中,FuncAnimation 接受的参数含义:fig 为图像句柄,generate 函数是我们更新每一帧图像所需数据的函数,下面会有介绍,fargs 为 genrate 函数的除去第一个参数的其他参数,第一个参数由 FuncAnimation 指定 framenum(帧数) 传给 generate 函数。frames 是帧数,interval 是更新图像间隔,save_count 为从帧到缓存的值的数量。
如果指定保存路径(html),则保存为 html 动画。
下面我们来看 generate 函数,NUM 为当迭代次数,frame_num 接收来自 FuncAnimation 的帧数。通过嵌套的 for 循环,我们逐个地更新方阵中各元素的状态。
最后,我们可以通过命令行参数,运行我们的程序:
-- size 参数为棋盘大小,--seed 为随机种子,用于产生不同的随机方阵。
高斯帕滑翔机q(Gosper Glider Gun)
可将 --gosper 更改为 --glider 滑翔机。--save 为动图保存的地址。
<form action="http://www.baidu.com/baidu" target="_blank">
<table bgcolor="#FFFFFF"><tr><td>
<input name=tn type=hidden value=baidu>
<a href="http://www.baidu.com/"><img src="http://img.baidu.com/img/logo-80px.gif" alt="Baidu" align="bottom" border="0"></a>
<input type=text name=word size=30>
<input type="submit" value="百度搜索">
</td></tr></table>
</form>
百度搜索代码!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)