900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 打字练习程序的编写

打字练习程序的编写

时间:2019-03-27 11:39:20

相关推荐

打字练习程序的编写

一、教学目标:

1、学习面向对象的编程方法与书写结构,学习提炼对象的共同点与差异;

2、掌握创建html元素的方法createElement,并通过style对象配置大小、尺寸、位置等css样式;

3、掌握随机数的生成方法;

4、掌握定时器的使用setInterval及清除指定定时器;

5、学习键盘按下事件onkeydown;

二、知识点:

1、createElement(tagName)

该方法在文档对象document中创建一个有tagName字符串所指定的html元素。

使用方法示例:document.createElement("div");//创建一个元素

2、object.appendChild(elm)

将elm变量所指向的html元素加载到文档元素object中。

使用方法示例:document.body. object.appendChild(elm);//将元素elm加载到document.body中

3、Math.random()

方法可返回介于 0(包含) ~ 1(不包含)之间的一个随机数,当需要指定随机数范围时,可使用算法:begin+Math.random()*range;

4、setInterval(function(){},ms)

在浏览器中创建一个定时器,每隔ms毫秒执行一次function方法,并返回该定时器的编号。

5、clearInterval(id)

按照定时器编号清除指定的定时器。

6、onkeydown(e)

当键盘有按键按下时触发按键事件,并可以通过e.keyCode访问按键编号。

三、基本素材:

该图片资源已经放入e鸣集成开发环境的图片库的元素分类中,并通过lettera、letterb等方式有规则的命名,可通过url("Image/element/lettera.png")加载。

四、教学导入及探究

1、通过面向对象的方法创建随机字母,找到字母的共同点(大小、都要向下落、都要加载一个图片)、不同点(位置、图片)

2、都有几种情况发生时,当前字母需要被清除掉:1、掉到屏幕外、2按钮按到

3、一个打字练习都需要数据统计些什么关键数据?1总共字母数、2按中字母数、总按键数、掉到屏幕外的字母数

五、程序编写

1、创建字母对象Letter,介绍Letter开头字母大小是程序员的编码约定,当大家看到开头字母大写时,需要通过new 的方式来创建并使用它;

2、通过this指针配置字母的id、清除方法;

3、在定时器中每隔一段时间调整字母元素的top值,使它能够不断的从上到下移动起来。

4、在定时器中每隔一段时间通过new创建一个字母;

5、打字的数据统计

程序代码如下:

window.onload= function(){

var id = 0;

var chars = {};

var sum = 0;

var win = 0;

var lost = 0;

function Letter(speed){

speed = speed || 8;

var image =document.createElement("img");

image.style.position ="absolute";

image.style.left =Math.random()*(document.body.offsetWidth - 60) + "px";

this.key =parseInt(Math.random()*26)+65;

image.src ="Image/element/letter" + String.fromCharCode(this.key+32) +".png";

document.body.appendChild(image);

var y = 0;

var me = this;

var timer = setInterval(function(){

y += speed;

if (y > document.body.offsetHeight){

lost ++;

me.clear();

}

image.style.top = y +"px";

},80);

this.clear = function(){

clearInterval(timer);

document.body.removeChild(image);

delete chars[me.id];

}

id ++;

this.id = id;

chars[id] = this;

}

document.body.onkeydown = function(e){

for (var k in chars){

if (chars[k].key == e.keyCode){

win ++;

chars[k].clear();

break;

}

}

}

setInterval(function(){

sum ++;

new Letter(6);

var p =document.getElementById("p1");

p.innerText = "总数"+sum+" 正确"+win+" 丢失"+lost;

},500);

};

六、课堂活动及分享

1、通过调整创建字母定时器的执行时间,查看运行效果

2、通过打字练习看看谁的准确度更高

3、思考怎样可以使字母落下的速度随机不同

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。