JavaScript战斗模拟器失败

JavaScript战斗模拟器失败,javascript,html,prompt,Javascript,Html,Prompt,我试图制作一个战斗模拟器,在其中我使用JavaScript中的prompt()函数提示用户输入攻击部队、防御部队以及杀伤率。当我将代码写入HTML文档进行测试时,它无法提示用户。我确实意识到,通过现在使用原型,我可以在下面更好地编写代码,但这个想法是在完成代码之后才出现的。我很抱歉在下面的代码中设置了奇怪的格式。下面是我调试时需要帮助的代码。你能帮我找出代码的错误吗 <!DOCTYPE html> <html> <head> <title> Bat

我试图制作一个战斗模拟器,在其中我使用JavaScript中的prompt()函数提示用户输入攻击部队、防御部队以及杀伤率。当我将代码写入HTML文档进行测试时,它无法提示用户。我确实意识到,通过现在使用原型,我可以在下面更好地编写代码,但这个想法是在完成代码之后才出现的。我很抱歉在下面的代码中设置了奇怪的格式。下面是我调试时需要帮助的代码。你能帮我找出代码的错误吗

<!DOCTYPE html>
<html>
<head>
<title> Battle Simulator AMUN </title>
</head>

<body>  

<SCRIPT LANGUAGE="JAVASCRIPT">
    var armyAttackingIn;
    var armyAttackingNumber;
    var armyDefendingIn;
    var armyDefendingNumber;
    //declares variables
    armyAttackingIn=prompt("How many forces are in the attacking army?");
    armyAttackingNumber = parseInt(armyAttackingIn);
    armyDefendingIn=prompt("How many forces are in the defending army?");
    armyDefendingNumber = parseInt(armyDefendingIn);
    //gets the number of armies

    var morale;
    //makes morale a factor
    var moraleYesOrNo = prompt("Shall morale be a factor? Y/N");
    if (moraleYesOrNo=="Y"||moraleYesOrNo=="Yes"||moraleYesOrNo="yes") {
    morale = ((defender/attacker)*3+.3)*100;
     if (morale>=100) {
        morale = 100;
     }
    }
    else {
    morale = 100;
    };
    //defines what morale is.
    var killRateDefense = parseInt(prompt("Insert the defensive kill rate. Default is 70.","70");)/100;
    var killRateOffense = parseInt(prompt("Insert the offensive kill rate. Default is 60.","60");)/100;
    var battle = function() {
//defines the kill rate
    var armyAttackingLeft = armyAttackingNumber - (armyDefendingNumber*killRateDefense*(100/morale));
    var defendingArmyLeft = armyDefendingNumber - (armyAttackingNumber*killRateOffense*(morale/100));
//gets armies left
    if(armyAttackingLeft<0) {
        armyAttackingLeft = 0
    };
    if(armyDefendingLeft<0) {
        armyDefendinigLeft = 0
    };
    //makes the minimum troops left 0
    }
battle();
document.write("The attacking army was " + armyAttackingIn + "men strong" <br>");
document.write("The defending army was " + armyDefendingIn + "men strong" <br>");
document.write("The morale was " + morale + "/%" <br>);
document.write("The defensive kill rate was " + killRateDefensive + "/% and the offensive kill rate was " + killRateOffensive + "/%" <br>);
document.write("There were " + (armyAttackingNumber-armyAttackingLeft) + " attackers killed" <br>);
document.write("There were " + (armyDefendingNumber-armyDefendingLeft) + " defenders killed" <br>);
document.write("There are " + armyAttackingLeft + " attacking soldiers that survived and there are " + armyDefendingLeft + " defending soldiers that survived.");
if (armyAttackingLeft == 0) {
    document.write(<br>"The attacking force was demolished. Everyone died.");
};
if (armyDefendingLeft == 0) {
    document.write(<br>"The defending force was demolished. Everyone died.");
};
//writes the document


</SCRIPT>
</body>
</html>

战斗模拟器阿蒙
Armyatckingin变种;
变量armyAttackingNumber;
armyDefendingIn变种;
var armyDefendingNumber;
//声明变量
armyAttackingIn=提示(“进攻部队中有多少部队?”);
armyAttackingNumber=parseInt(armyAttackingIn);
armyDefendingIn=提示(“防御部队中有多少部队?”);
armyDefendingNumber=parseInt(armyDefendingIn);
//获取军队的数量
士气;
//使士气成为一个因素
var moraleYesOrNo=提示(“士气是否应为一个因素?是/否”);
如果(moraleYesOrNo==“Y”| | moraleYesOrNo==“Yes”| | moraleYesOrNo=“Yes”){
士气=((防守/进攻)*3+.3)*100;
如果(士气>=100){
士气=100;
}
}
否则{
士气=100;
};
//定义什么是士气。
var killratedeffence=parseInt(提示(“插入防御杀死率。默认值为70。”,“70”))/100;
var killrateavention=parseInt(提示(“插入攻击性杀伤率。默认值为60。”,“60”))/100;
var=函数(){
//定义杀死率
var armyAttackingLeft=armyAttackingNumber-(ArmyDefindingNumber*杀戮防御*(100/士气));
var DefensingArmyleft=ArmyDefensingNumber-(ArmyAtackingNumber*致命攻击*(士气/100));
//剩下的军队

如果(armyAttackingLeft您以前使用过浏览器的Javascript控制台吗?您可能会发现它是一个有用的调试工具

仅在prompt()调用时出现明显错误:代码中有一个额外的分号,这导致参数列表后出现“Uncaught SyntaxError:missing”错误

正确的行是:

parseInt(prompt("Insert the defensive kill rate. Default is 70.","70"))/100;
if语句缺少“=”。您当前正在执行赋值而不是检查,并且它引发了一个错误。它应该是:

if (moraleYesOrNo=="Y"||moraleYesOrNo=="Yes"||moraleYesOrNo=="yes") {
您的一个VAR中也有一个输入错误:

armyDefendinigLeft = 0

document.write(
给出了一个语法错误。顺便说一句,除非必要,否则不要使用
document.write
。这里有很多错误。
moraleysorno=“yes”
在javascript中不是一个有效的逻辑语句。我不知道这是否是您唯一的问题,但应该是
document.write(“
使用…
而不是您现在拥有的。按浏览器中的F12键打开其开发人员工具,可以发现许多其他常见问题。