こんにちは私はゲームの基本的な電卓をやっていますが、問題に直面しています。私はこのプログラミング言語を学び始めました。私が見つけたすべてのチュートリアルを読んで、今はいくつかのコードを作って、私はphpで書かれた計算コードをPHPで書いていますが、PHPでは完璧に機能していましたが、別のテクニックを使用していました.JavaScriptでは計算ボタンを押して関数を作成します5人の選手のすべてのデータを格納するためのオブジェクトは、見てみましょう:JavaScriptの基本的な計算は常にNaNを取得
function count(){
function ninjas (name,dmg,dmgrate,dmggrow,speed,fury) {
this.name = name;
this.dmg = dmg;
this.dmgrate = dmgrate;
this.dmggrow = dmggrow;
this.speed = speed;
this.fury = fury;
}
var name = [];
var dmg = [];
var dmgrate = [];
var dmggrow = [];
var speed = [];
var fury = [];
var ninja = [];
for(var i = 0; i <5; i++){
name[name.length] = document.getElementById("ninja" + (i +1)).value;
dmg[dmg.length] = document.getElementById("dmg" + (i +1)).value;
dmgrate[dmgrate.length] = document.getElementById("dmgrate" + (i +1)).value;
dmggrow[dmggrow.length] = document.getElementById("dmggrow" + (i +1)).value;
speed[speed.length] = document.getElementById("speed" + (i +1)).value;
fury[fury.length] = 50;
ninja[i] = new ninjas(name[i],dmg[i],dmgrate[i],dmggrow[i],speed[i],fury[i]);
}
ninja.sort(function(a, b){return b.speed - a.speed});
var totaldmg;
var damagerate;
var damagegrow;
var furydmg;
for(var a = 0; a < 6; a++){ // 6 fight
for(var b = 0; b < 5; b++){ // 5 ninjas
if(ninja[b].name == "Kabuto"){
if(ninja[b].fury == 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
furydmg = damagegrow + (damagegrow/100) * ((ninja[b].fury - 100)/0.25);
totaldmg += furydmg;
for(var c = 0; c < 5; c++){ // add fury each ninja by 25
ninja[c].fury +=25;
}
ninja[b].fury -= 25;
ninja[b].fury +=100;
}else if(ninja[b].fury > 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
totaldmg += damagegrow;
for(var c = 0; c < 5; c++){// add fury each ninja by 25
ninja[c].fury +=25;
}
ninja[b].fury -= 25;
ninja[b].fury +=100;
}else {
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
totaldmg += damagerate;
ninja[b].fury += 50;
}
} else {
if(ninja[b].fury == 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
totaldmg += damagegrow;
ninja[b].fury = 0;
}else if(ninja[b].fury > 100){
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
damagegrow = damagerate/100 * ninja[b].dmggrow;
furydmg = damagegrow + (damagegrow/100) * ((ninja[b].fury - 100)/0.25);
totaldmg += furydmg;
ninja[b].fury = 0;
}else {
damagerate = ninja[b].dmg/100 * ninja[b].dmgrate;
totaldmg += damagerate;
ninja[b].fury += 50;
}
}
}
}
document.getElementById("result").innerHTML = totaldmg;
};
私は彼女の場所ですべてのデータを保存するために、いくつかのループを使用し、各ステップは、私がCHEをした後、速度属性によって短い全員に短い関数を使用しますもしすべてが大丈夫だけど最後にどういうわけか私はまだNaNの結果を得ています。これを解決するために誰かが私を助けてくれるかもしれません。何度も自分のコードをチェックしましたが、間違いがあるかも知れません。
[mcve]に問題をコンパクトにしようとすると、私たちはあなたを助けることができますが、問題がどこから来ているのかを理解することもできます – BeyelerStudios
あなたは文字列で数学を行っています。 –
[JavaScriptへようこそ](https://www.destroyallsoftware.com/talks/wat) – Nixon