当时进入民航大培训前做过一系列的测试,一共是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. 导出Excel1 - 项目分解篇

    我们在全部的MIS系统(信息管理系统)中都能见到他.所以我们把这个通用功能提出来. 项目名称:车辆信息管理系统(中石化石炼) 项目负责人:xiaobin 项目时间:2006.12 - 2007.2 E ...

  2. effective java学习笔记之不可实例化的类

    在没有显式声明一个类的构造方法时,编译器会生成默认的无参构造方法,在设计工具类时,我们通常将方法设置成静态方法,以类名.方法名的形式调用,此时这个类就没有必要创建实例,我们知道抽象类不可以被实例化,但 ...

  3. 自学Zabbix3.6.2-触发器triggers severity严重程度

    触发器严重性定义了触发器的重要性. 1. zabbix支持以下触发级别: SEVERITY DEFINITION 颜色 Not classified 未知. 灰色 Information 一般信息. ...

  4. lock锁速记

    1.Lock关键字主要实现锁互斥,确保一个线程A在请求此操作时不会被其线程B请求中断(假设A先请求并在没有未完成的操作情况下申请了此互斥锁).lock的参数必须是基于引用类型的对象,不要是基本类型像b ...

  5. IDEA热部署(三)---jetty插件调试(转)

    我们在开发的时候习惯对于项目的框架进行分层,在idea中对于不同的层,我们使用module来进行划分,不同的module之间是通过maven来进行依赖的. 我们的项目结构是这样的,admin是我们的w ...

  6. Linux Centos安装及卸载Apache

    一.卸载 1.查看有没有安装apache,出现下面信息则安装过 [root@localhost ~]# rpm -qa|grep httpd httpd-2.2.15-53.el6.centos.x8 ...

  7. MVC+EF 入门教程(四)

    一.前言 写了那么久,那么现在给大家看效果了 二.效果展示 点击创建Blog 显示 编辑 编辑成功,是不是很酷. 删除 终于完成了,准备睡觉!虽然有很多不足的地方,我会慢慢的去改的.感谢累了一天的自己 ...

  8. IOS学习3——代理

    本文转载自:你真的了解iOS代理设计模式吗? 在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数.这篇文章会涵盖代理的使用技巧和原理,以及代理的内存 ...

  9. Python的HTTP服务实例

    1.前言 今天需要实现一个Pyhton的http服务,与Web的JS进行交换. 2.实例代码 支持HEAD.GET.POST方法,将参数转换为JSON格式,返回结果以JSON字符串返回. import ...

  10. Golang 网络爬虫框架gocolly/colly 一

    Golang 网络爬虫框架gocolly/colly 一 gocolly是用go实现的网络爬虫框架,目前在github上具有3400+星,名列go版爬虫程序榜首.gocolly快速优雅,在单核上每秒可 ...