当时进入民航大培训前做过一系列的测试,一共是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. Python的类(class)

    python 3.6 官方文档  https://docs.python.org/3.6/index.html python 3.6 的类 https://docs.python.org/3.6/tu ...

  2. IntelliJ IDEA 热部署插件 JRebel 安装激活及使用

    JRebel对个人用户免费使用,但是要使用Facebook账号把信息完整填写之后才能获取Lisense,登陆Facebook官网二种方案:①修改本地hosts文件:②使用VPNFQ 以下是二种方案的解 ...

  3. java 正则学习

    前言 在网上找了许多关于正则解析 URL,结果不是很满意,所以自己学习正则: java url 那么解析 url 的代码如下: import java.util.regex.Matcher; impo ...

  4. android中的五大布局(控件的容器,可以放button等控件)

    一.android中五大布局相当于是容器,这些容器里可以放控件也可以放另一个容器,子控件和布局都需要制定属性. 1.相对布局:RelativeLayout @1控件默认堆叠排列,需要制定控件的相对位置 ...

  5. Pytorch windows10安装教程

    强烈建议安装anaconda之后再来安装这个pytorch,具体怎么安装百度搜索就知道了. 温馨提示,在安装anaconda的时候记得将"添加到环境变量"(安装的时候是英文的)这一 ...

  6. linux系统日常管理复习题讲解

    1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 2. 查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢? 3. vmstat r, b, si, so, bi, b ...

  7. lesson - 3 ls /cd /path /alias /快捷键

    内容概要: 1. 命令ls -l   详细信息-a  查看隐藏的文件或目录-d   只看目录本身,不列出目录下面的文件和目录-t 以时间先后排序 2  目录结构/bin, /sbin, /usr/bi ...

  8. 使用 PyCharm 添加 第三方 依赖库

    背景 最近开始搞python, 需要帮助算法同事一起调试程序,在本地安装python以后使用 pip 来安装第三方库. 但是算法同事一直使用的是PyCharm 这个IDE,所以需要与他一起调试的时候也 ...

  9. angularjs 怎么获取鼠标焦点 鼠标移入显示浮动的div提示框

    首先,我们要清楚几个基础的知识,angular的两个鼠标移入移出的指令------ng-mouseover(鼠标移入)ng-mouseleave(鼠标移出)--------还有就是window.eve ...

  10. 中文代码示例之Angular入门教程尝试

    原址: https://zhuanlan.zhihu.com/p/30853705 原文: 中文代码示例教程之Angular尝试 为了检验中文命名在Angular中的支持程度, 把Angular官方入 ...