速算扑克牌 第一版

请先看 速算扑克牌,开发数学潜能【开发计划】  速算扑克牌 第二版

目前只在Chrome浏览器效果较好,其余还未测试,后期将考虑浏览器兼容问题

效果

 算法:  

 把牌的顺序洗乱,然后拿在手里一张一张地出,出第一张时,嘴里念出牌上的数字;

 出第二张时,直接说出第一张牌与第二张牌相加的和;

 出第三张牌时,说出跟前一个得数相加的和……

 注意:在连加的过程中既不要叨念也不要默想“几加几等与几”而要直接说出两数的和。 
 例如:第一张牌是3,第二张牌是5,要直接说“8”而不要说也不要默想“3+5=8”。

 操作提示:

 1.选择要循环的次数后,点击开始按钮。

 2.点击GO开始测试,点击数字出现下一个。


循环次数

 

 

功能分析

1.打乱数组

function randomsort(a, b) {
return Math.random()>.5 ? -1 : 1;//用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1
}
var arr = [1, 2, 3, 4, 5];
arr.sort(randomsort);

相关资料 JS打乱数组  JS不重复随机数

2.计时

...
var BeginTime=0;//开始测试时间
...
//根据需求产生新的随机数组
function getNewArr(){
...
BeginTime=new Date();
...
}

//输出下一个数
function nextStep(){
if(arr_index<NowArr.length){
...
}else{
...
var NowTime = new Date();
var ms=(NowTime.getTime()-BeginTime.getTime())/1000;
var str="本次耗时"+ms+"秒";
confirm(str);
}
}

相关资料 JS计时脚本

 后续

1.添加选择运算的方法,在测试结束后根据运算方法,循环次数和时间给出相应的水平判断。

2.关于数组的选择,要找更好的方法替代

var theTimes=document.getElementById("selTimes").value;
if(theTimes==1){
NowArr = [1, 2, 3, 4, 5,6,7,8,9,10];
}else if (theTimes==2){
NowArr = [1, 2, 3, 4, 5,6,7,8,9,10,1, 2, 3, 4, 5,6,7,8,9,10];
}else if (theTimes==3){
NowArr = [1, 2, 3, 4, 5,6,7,8,9,10,1, 2, 3, 4, 5,6,7,8,9,10,1, 2, 3, 4, 5,6,7,8,9,10];
}else if (theTimes==4){
NowArr = [1, 2, 3, 4, 5,6,7,8,9,10,1, 2, 3, 4, 5,6,7,8,9,10,1, 2, 3, 4, 5,6,7,8,9,10,1, 2, 3, 4, 5,6,7,8,9,10];
}

3.整体色调和换数字的效果还要大改。

4.浏览器兼容问题

资料来源

刘亦婷学习方法及细节培养》中提到过该速算训练的方法

http://www.yijide.com/news/102.htm

http://www.codefans.net/jscss/code/941.shtml

 JS打乱数组  JS不重复随机数  JS计时脚本

posted @ 2012-03-12 14:06  kumat  阅读(2790)  评论(20编辑  收藏  举报