当时进入民航大培训前做过一系列的测试,一共是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位数以上的加减乘除,说实话很难反应过来,很多答案都来不及选择。测试完了大家都惴惴不安,后来去问老师成绩,老师笑着说,那种题就是用来吓人的,看你们在遇到打击之后,接下来的反应如何,真是哭笑不得。

git:https://github.com/stoneniqiu/ATC

H5数飞机的更多相关文章

  1. lintcode:数飞机

    数飞机 给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机? 如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权. 样例 对于每架飞机的起降时间列表 ...

  2. lintcode-【中等】数飞机

    题目: 给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机? 样例: 对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]], ...

  3. <Win32_20>纯c语言版的打飞机游戏出炉了^_^

    经过昨天的苦战,终于完成了纯C版的打飞机游戏——使用微信打飞机游戏的素材,不过玩法有些不同,下面会有详述 一.概述游戏的玩法.实现效果 1. 游戏第一步,简单判断一下,给你一个准备的时间: 2.选择& ...

  4. 7九章算法强化班全解--------Hadoop跃爷Spark

    ------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...

  5. LintCode 391: Count Of Airplanes

    LintCode 391: Count Of Airplanes 题目描述 给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机? 样例 对于每架飞机的起 ...

  6. lintcode算法周竞赛

    ------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...

  7. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行

    [微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...

  8. H5 可堆叠的圆环进度条,支持任意数量子进度条

    by Conmajia SN: S22-W1M 由来 看到一篇帖子<vue实用组件--圆环百分比进度条>,让我想起了很多年前我在WinForm下仿制过的Chrome进度条. ▲ 原版进度条 ...

  9. H5 canvas 实现飞机大战游戏

    首先看几张效果图: 上面三张图分别对应游戏的三种状态 ready,play,pause.体验一下 先介绍一下canvas 画图的原理,在这个游戏中的背景,飞机,子弹以及飞机被击中爆炸的效果都是一张张的 ...

随机推荐

  1. 看看android基础知识,谁帮我作答

    无论怎么着,了解一点android的基本知识还是有必要的,就当开阔一些自己的眼界吧. .. . android的四大功能组件是_activity_,_service_,_BroadcastReceiv ...

  2. js清除cookie有时无法清除

    最近写页面遇到一个问题,退出的时候需要清除cookie,但是刚开始一直清除不掉,代码如下: //清除函数 function delCookie(name) { var date= new Date() ...

  3. UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 46:illegal multibyte sequence

    一. 最近使用python写入文件时,出现了如下的错误: 但是content的内容是unicode编码,不知道怎么和gbk扯上了关系,对content使用encode()和decode(),用gbk, ...

  4. html5笔记——<section> 标签

    定义和用法 <section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中的其他部分. 注意: section 不是一个专用来做容器的标签,如果仅仅是用于设置 ...

  5. Redis的那些最常见面试问题

    随笔:经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概10家公司,包括阿里,京东,IBM等等,京东技术过了,学历因为非统招就被pass了,阿里面了2次电话面试就没下文了,估 ...

  6. github not authorized eclipse 关于 代码不能提交到GitHub

    eclipse/myeclipse > menu > window > preferences > general > security > content > ...

  7. CentOS6.9下安装rabbitmq消息队列

    安装如下步骤: 首先安装erlang yum install erlang 安装rabbitmq rpm包 wget http://www.rabbitmq.com/releases/rabbitmq ...

  8. 9.python面向对象编程

    面向对象的几个核心特性如下 Class 类一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性(variables(data)).共同的方法 Object 对象 一 ...

  9. SpringMVC框架(二)注解 (转)

    原文地址:http://www.cnblogs.com/yjq520/p/6734422.html 1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个Spr ...

  10. APP的线程安全

    一般来说iOS中两个就够了,但是安卓中的第三个,iOS也是要注意的: 第一:网络方面,别人以为做数据请求用post会比get请求安全,但是这是错的,post请求虽然看起来你的请求是在请求体上,不像ge ...