在线学习,从潘多拉盒子开始!-潘多拉盒子

开启左侧

[晒代码] [困难关卡][zone of danger]循环的使用

[复制链接]
plxzzlx 发表于 2014-3-5 15:44:44 | 显示全部楼层 |阅读模式
本帖最后由 plxzzlx 于 2014-3-5 16:17 编辑

这关需要完成两个函数分别是:[backcolor=rgba(255, 255, 255, 0.8)]this.distanceTo(target);和this.getNearestEnemy();  代码如下
  1. var enemies = this.getEnemies();
  2. var MaxDis = 9999;
  3. var nearestEnemy = enemies[0];
  4. for (var i=0;i<enemies.length;i+=1)
  5. {
  6.     var enemy = enemies[i];
  7.     var dis = this.distanceTo(enemy);
  8.     if(dis < MaxDis)
  9.         nearestEnemy = enemy;
  10.     MaxDis = dis;
  11. }

  12. return nearestEnemy;
复制代码

  1. var enemies = this.getEnemies();
  2. var MaxDis = 9999;
  3. var nearestEnemy = enemies[0];
  4. for (var i=0;i<enemies.length;i+=1)
  5. {
  6.     var enemy = enemies[i];
  7.     var dis = this.distanceTo(enemy);
  8.     if(dis < MaxDis)
  9.         nearestEnemy = enemy;
  10.     MaxDis = dis;
  11. }

  12. return nearestEnemy;
复制代码
这个两个函数是需要自己完成的。我一开始一直以为这两函数是系统提供的,搞了很久,坑爹啊。
javascript循环使用for(var a in A)中,a其实是A数组的下标,坑爹啊,一直以为a是对象数组中的一个对象。所以直接换成for (var i=0;i<enemies.length;i+=1)了。

回复

使用道具 举报

十弌 发表于 2014-5-3 20:50:17 | 显示全部楼层
this.distanceTo(target)函数应该是:

  1. return Math.sqrt(Math.pow(target.pos.x - this.pos.x, 2) + Math.pow(target.pos.y - this.pos.y, 2));  // This is not it.
复制代码
回复 支持 反对

使用道具 举报

xinlan 发表于 2014-6-15 16:12:52 | 显示全部楼层
楼主,这个程序貌似是对的,但每次都能杀死14个,最后一个大怪杀不死,导致failing,求教。
回复 支持 反对

使用道具 举报

xinlan 发表于 2014-6-15 19:01:20 | 显示全部楼层
var enemies = this.getEnemies();
var nearestEnemy = null;

// TODO: Find the nearest enemy with the distanceTo method.
var nearest = enemies[0];
var shortestDistance = this.distanceTo(nearest);
for (var i = 0; i < enemies.length; i++) {
    var distance = this.distanceTo(enemies[i]);
    if (distance  <= shortestDistance) {
        nearest = enemies[i];
        shortestDistance = distance;
        } else {
            nearest = nearest ;
            shortDistance = shortDistance;
            }  
    }
nearestEnemy = nearest;
return nearestEnemy;
楼主,我的这个是对的,你的那个能通过吗
回复 支持 反对

使用道具 举报


快速回复 返回顶部 返回列表