H5情景意识 --飞机
2018-01-16 11:08 stoneniqiu 阅读(911) 评论(1) 编辑 收藏 举报当时进入民航大培训前做过一系列的测试,一共是8个小游戏,主要测试情景意识、反应能力、场面控制之类的,有几个还记忆犹新,这个数飞机只是其中之一,今天没事用JavaScript做了一遍。
原理
逻辑比较简单,主要就是通过随机获测试方向,然后添加噪声,三秒后提问。如此循环。
1.获取测试方向
2.获取飞机位置
3.获取噪声方向
4.获取噪声位置。
5.显示飞机。
6.提问
实现
var row=6; var col=6; var headinglist={0:"朝上",1:"朝右",2:"朝下",3:"朝左"}//上下左右 var imglist={0:"plane.png",1:"right.png",2:"down.png",3:"left.png"} var trueHeading; //最多有五架飞机朝左边 var Max=5; //实际朝左的飞机 var realHeading; //朝左边飞机的位置 var reals=[]; //增加干扰的数量 var noiseMax=3; //干扰的方向 var noiseHeading; //获取干扰的位置。 var realnoise; var noise=[]; //创建表格 rander(); function rander(){ //默认是朝上的, var defaultplane="plane.png"; trueHeading=getRandom(4) console.log(headinglist[trueHeading]) //如果选择的是朝上的,那么默认的就朝下。 if(trueHeading==0) defaultplane=imglist[2]; var targetplane=imglist[trueHeading]; $(".title span").html(headinglist[trueHeading]); var $table=$("#table"); $table.empty(); realHeading=getRandom(Max) reals=[]; getRandomPositions(); console.log("realHeading",realHeading); $("#anwser").html("") noise=[]; noiseHeading=getNoiseHeading(trueHeading); getRandom(noiseMax); getRandomNoisePosition(); for(var i=0;i<row;i++){ var $tr=$("<tr>"); for(var j=0;j<col;j++){ //装载飞机 var img=$("<img src='"+defaultplane+"' />") if(IsIn(j,i)){ img=$("<img src='"+targetplane+"' />") } if(IsInNoise(j,i)){ img=$("<img src='"+imglist[noiseHeading]+"' />") } var $td=$("<td>").html(img); $tr.append($td) } $table.append($tr); } setTimeout(function(){ showQuestion(); },3000) } function showQuestion(){ $("#warp").addClass("shadow"); $("#warp").show(); } function close(){ $("#warp").removeClass("shadow"); $("#warp").hide(); // alert(realHeading) $("#anwser").html(realHeading) setTimeout(rander,3000) } function IsIn(x,y){ return !!reals.find(n=>n[0]==x&&n[1]==y); } function IsInNoise(x,y){ return !!noise.find(n=>n[0]==x&&n[1]==y); } function getNoiseHeading(th){ var h=getRandom(4); if(h!=th){ console.log("干扰方向是",headinglist[h]) return h; } return getNoiseHeading(); } function getRandomPositions(){ for(var i=0;i<realHeading;i++){ getRandomPosition(); } } //获取随机噪音的位置 function getRandomNoisePosition(){ var x=getRandom(col); var y=getRandom(row); //检查 var item=reals.find(n=>n[0]==x&&n[1]==y); if(item) return getRandomPosition(); noise.push([x,y]); }; //获取随机的位置 function getRandomPosition(){ var x=getRandom(col); var y=getRandom(row); //检查 var item=reals.find(n=>n[0]==x&&n[1]==y); if(item) return getRandomPosition(); reals.push([x,y]); }; //获取随机数 function getRandom(max){ var ran=Math.round(max*Math.random()); return ran>=max?getRandom(max):ran; } $(".close").click(function(){ close(); })
实现起来很简单,可以通过增加方向数量来增加难度。实际那天测试的时候有八个方向,做得有点懵。 而且还有一道题是四秒钟计算2位数以上的加减乘除,说实话很难反应过来,很多答案都来不及选择。测试完了大家都惴惴不安,后来去问老师成绩,老师笑着说,那种题就是用来吓人的,看你们在遇到打击之后,接下来的反应如何,真是哭笑不得。
关注书山有路,用自己的知识体系去丈量世界!
书山有路群:452450927
书山有路群:452450927
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义