Flash 与课件制作:简单创建20道加法题目
2015-01-22 01:01
260 查看
var a:Array =[1,2,3,4,5,6,7,8,9,10]; var dic:Array = []; var total:int = 20; creatRandomquestions(); //创建的20道 20以内的简单加法 function creatRandomquestions():void { var aIndex:int = Math.random()*a.length; var bIndex:int = Math.random()*a.length; var numA:int = a[aIndex]; var numB:int = a[bIndex]; if(dic.indexOf(numA+"+"+numB)==-1) { dic.push(numA+"+"+numB); trace(numA+"+"+numB+"=?"); total --; } if(total > 0) { creatRandomquestions(); } }
这两道题目,采用一种递归方式设计,但是同事说,递归效率不是最好。而且采用上面的设计,会有漏洞,因为20以内加法的数据 还有 10以上数据。这样一来,上面虽然实现了随机 20道题目出来,不过离需求还有一些差别。于是采用另外一种设计,穷举帅选。
var dic:Array = []; var total:int = 20; var maxNum:int = 20; creatRandomquestions(); //创建的20道 20以内的简单加法 function creatRandomquestions():void { //穷举 for (var i:int = 1; i <= maxNum; i++) { for (var j:int = i; j <= maxNum; j++) { if(i+j > maxNum ) continue; { dic.push(i+"+"+j+"=?"); } } } for (i=0;i<20;i++) { var r:int = Math.random()*dic.length; trace(dic.splice(r,1)) } }
采用两个循环,将20以内的数据,随机组合起来,然后再帅选起来。这种做法 基本能够实现 20以内的数据组合,且和都是小于20的。采用穷举 再刷选的做法,理解起来也比较容易。也能基本完成目标。同样,出的题目也不会重复。
但是 你会发现一个小问题。前面的加数 都是个位数字,显得不自然。
下面再改造一下,改成不重复的题目,避免出现 3+4 和4+3 这样重复的题目出现了。穷举法可以列举出各种排列组合。从1开始和1-20进行匹配 组合,这样子一开始不对其过滤重复的字眼。从理解上是比较容易。而又可以达到目的。 穷举法 可以解决了我们想要的问题。后来同事 又在讨论,追加了另外一种思路。通过方法接口,刷选20道且不重复的题目,效果还不错,心不由佩服。 因为写的方法虽然可以解决到问题。写得唠叨一点。
var dic:Array = []; var total:int = 20; var maxNum:int = 20; creatRandomquestions(); //创建的20道 20以内的简单加法 function creatRandomquestions():void { //穷举 for (var i:int = 1; i <= maxNum; i++) { for (var j:int = 1; j <= maxNum; j++) { if(i+j > maxNum ) continue; { dic.push([i,j]); } } } var result:Array =[]; while(result.length < maxNum) { var index:int = Math.random()*dic.length; var arr:Array = dic[index]; if(result.indexOf(arr[0]+"+"+arr[1]+"=?")==-1 && result.indexOf(arr[1]+"+"+arr[0]+"=?")==-1) { result.push(arr[0]+"+"+arr[1]+"=?"); } } trace(result.join("\n")) }
后面,再续。再讨论还有无办法刷选这20道不重复且 20以内和的计算题目?明天继续
相关文章推荐
- Flash 与课件制作:简单的加法
- 从简单的add加法函数分析函数栈帧的创建与销毁过程(附有关栈帧的题目)
- 简单的伸缩菜单-实例教学-Flash-网页制作
- 简单Flash进度条制作
- (转)简单创建jar文件(压缩&制作可执行文件)
- 导入Flex/Flash项目后的一个简单错误:无法创建 HTML 包装器
- Flash制作简单塔防游戏(二)
- FLASH简单制作探照灯效果
- VS2010 C++ MFC框架学习笔记2 - 创建一个简单的加法计算器(2)
- Flash 与课件制作:视频播放
- Flash 与课件制作:Mp3播放
- 用Flash制作Scorm标准课件
- 简单Flash进度条制作
- 用Flash制作简单实用的图片切换效果
- Flash制作(简单)电子相册
- Flash 与课件制作:视频播放
- 简单的伸缩菜单-实例教学-Flash-网页制作
- 用flash制作简单拼图游戏
- Flash 与课件制作:加载图片
- 用SurfaceView制作简单的android游戏 : 重力小球(1)--------创建游戏整体框架