zoukankan      html  css  js  c++  java
  • H5情景意识 --飞机

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

  • 相关阅读:
    The xp_cmdshell proxy account information cannot be retrieved or is invalid. Verify that the '##xp_cmdshell_proxy_account##' credential exists and contains valid information.
    SQL SERVER-创建Alwayson
    Powershell-远程操作
    powershell-将powershell脚本排到JOB
    powershell-脚本运行权限政策
    Winserver-默认以管理员运行程序
    Powershell-创建Module
    SQL SERVER-查询爆破sa密码的主机
    power-virus
    141.Linked List Cycle 快慢指针
  • 原文地址:https://www.cnblogs.com/stoneniqiu/p/8295241.html
Copyright © 2011-2022 走看看