javascript - 这些函数里边的代码

查看:65
本文介绍了javascript - 这些函数里边的代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

新手求大神解释下函数里面的代码 在此谢谢了 感谢

    var guojing=new Object();
        guojing.name="郭靖"
        guojing.HP=500;
        guojing.gj=90;
        guojing.sd=60;
        guojing.skill=new Array('亢龙有悔','飞龙在天','见龙在田','鸿渐于陆','潜龙勿用')

    var ouyang=new Object();
        ouyang.name='欧阳锋';
        ouyang.HP=800;
        ouyang.gj=100;
        ouyang.sd=40;
        ouyang.skill=new Array('灵蛇棍法','凤凰神力','颠倒阴阳','逆转静脉','天蟾神功')

    function whoGjwho(a,b){
          return a.sd*Math.random()>b.sd*Math.random()?[a,b]:[b,a]
      }

      

      function game(){
          var skillIndex=Math.floor(Math.random()*5)
          var Fight=whoGjwho(guojing,ouyang);
          var attacker=Fight[0]   这里为什么变成数组了呢? 这里有点模糊不太明白
        var defender=Fight[1]
        var damage=attacker.gj*Math.random()-defender.gj*Math.random();
            if(damage<=0){
                    damage=0
                }else{
                    damage=Math.ceil(damage);
                }
        defender.HP-=damage;

        document.write(attacker.name+"使用了一招"+attacker.skill[skillIndex]+'<br>')
        document.write(defender.name+"损失了"+damage+'点HP'+'<br>')

        if (defender.HP>0) {
            document.write(defender.name+"的HP:"+defender.HP+'<br>'+attacker.name+'的HP:'+attacker.HP+'<hr>')    
        }else{
            document.write(defender.name+'战败了'+'<br>'+attacker.name+'取得了胜利!'+'<br>')
            alert(attacker.name+'取得了胜利!'+'Gmame Over!')
            clearInterval(zd)
        }

      }
  var zd=setInterval('game()',50)

解决方案

function whoGjwho(a,b){
    return a.sd*Math.random()>b.sd*Math.random()?[a,b]:[b,a]
}    

这个函数返回值是一个 数组, [a, b]或者[b, a]. 所以:

var Fight=whoGjwho(guojing,ouyang);
var attacker=Fight[0] 

Fight是一个数组.

这篇关于javascript - 这些函数里边的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆