Javascript 创建一个循环,在敌人死亡后结束
我如何使用Javascript OOP来创建一个循环,直到玩家打败敌人Javascript 创建一个循环,在敌人死亡后结束,javascript,jquery,html,Javascript,Jquery,Html,我如何使用Javascript OOP来创建一个循环,直到玩家打败敌人 var character = {}; character.health = 5; character.damage = 1; var npc = {}; npc.health = 5; do { npc.health = npc.health -= character.damage; document.write(npc.health + "<br>"); } while (npc.hea
var character = {};
character.health = 5;
character.damage = 1;
var npc = {};
npc.health = 5;
do {
npc.health = npc.health -= character.damage;
document.write(npc.health + "<br>");
}
while (npc.health != 0);
if (npc.health == 0) {
document.write("Player wins.");
}
var character={};
性格健康=5;
字符损伤=1;
var npc={};
npc.health=5;
做{
npc.health=npc.health-=角色伤害;
文件。写(npc.health+“
”);
}
而(npc.health!=0);
如果(npc.health==0){
写下(“玩家赢了”);
}
当角色伤害设置为1时,此选项有效,但一旦超过1,它将永远循环,浏览器崩溃?我很困惑。还有,我如何让它显示0而不是像-1这样的负数?如果你的
字符.damage
是2,请考虑循环的迭代次数
第一次迭代后,npc.health
将为3
第二次迭代后,npc.health
将为1
第三次迭代后,npc.health
将为-1
因为您的while
状况是npc.health!=0
,您的循环将永远持续,因为npc.health
永远不会为0,它将继续变得越来越负
将while
条件更改为npc.health>0
可以解决您的问题
要不显示npc
,在减去字符.damage
后,只需添加if
语句,然后再使用document.write()
显示npc.health
if (npc.health < 0) {
npc.health = 0;
}
if(npc.health<0){
npc.health=0;
}
如果您的字符.damage
为2,请考虑循环的迭代次数
第一次迭代后,npc.health
将为3
第二次迭代后,npc.health
将为1
第三次迭代后,npc.health
将为-1
因为您的while
状况是npc.health!=0
,您的循环将永远持续,因为npc.health
永远不会为0,它将继续变得越来越负
将while
条件更改为npc.health>0
可以解决您的问题
要不显示npc
,在减去字符.damage
后,只需添加if
语句,然后再使用document.write()
显示npc.health
if (npc.health < 0) {
npc.health = 0;
}
if(npc.health<0){
npc.health=0;
}
首先,让我们调整循环,以处理“赢”可能是因为健康状况变为负值的情况
do {
npc.health -= character.damage;
document.write(npc.health + "<br>");
} while (npc.health > 0);
if (npc.health <= 0) {
document.write("Player wins.");
}
在进入此循环之前,您可能还希望检查character.damage
是否为正值
if (character.damage > 0) while (true) // etc..
最后,NPC攻击玩家时也可以轻松扩展此模式
if(character.damage>0 | | npc.damage>0)//循环将最终结束
while(true){
//查塔克特攻击NPC
npc.健康-=性格伤害;
如果(npc.health首先让我们调整循环,以处理“赢”可能是因为健康状况变为负值的情况
do {
npc.health -= character.damage;
document.write(npc.health + "<br>");
} while (npc.health > 0);
if (npc.health <= 0) {
document.write("Player wins.");
}
在进入此循环之前,您可能还希望检查character.damage
是否为正值
if (character.damage > 0) while (true) // etc..
最后,NPC攻击玩家时也可以轻松扩展此模式
if(character.damage>0 | | npc.damage>0)//循环将最终结束
while(true){
//查塔克特攻击NPC
npc.健康-=性格伤害;
如果(npc.health根据我的说法,这里有一些逻辑问题。所以我把修改过的程序放在这里,试试你的运气。我还没有测试过这段代码,但我认为它会工作
var character = {};
character.health = 5;
character.damage = 1;
var npc = {};
npc.health = 5;
do {
npc.health -= character.damage;
if(npc.health>0)document.write(npc.health + "<br>");
else break;
}while (npc.health > 0);
if (npc.health <= 0) {
document.write("Player wins.");
}
var character={};
性格健康=5;
字符损伤=1;
var npc={};
npc.health=5;
做{
npc.健康-=性格伤害;
如果(npc.health>0)文件。写入(npc.health+“
”;
否则就断了;
}而(npc.health>0);
如果(npc.health根据我的说法,这里有一些逻辑问题。所以我把修改过的程序放在这里,试试你的运气。我还没有测试过这段代码,但我认为它会工作
var character = {};
character.health = 5;
character.damage = 1;
var npc = {};
npc.health = 5;
do {
npc.health -= character.damage;
if(npc.health>0)document.write(npc.health + "<br>");
else break;
}while (npc.health > 0);
if (npc.health <= 0) {
document.write("Player wins.");
}
var character={};
性格健康=5;
字符损伤=1;
var npc={};
npc.health=5;
做{
npc.健康-=性格伤害;
如果(npc.health>0)文件。写入(npc.health+“
”;
否则就断了;
}而(npc.health>0);
如果(npc.health我想你想把npc.health-=字符.伤害;
改为npc.health-=字符.伤害;
你可能还想把npc.health的条件改为零以下以避免无限循环我想你想把npc.health=npc.health-=字符.伤害;
改为npc.health-=character.damage;
您可能还想将npc.health的条件更改为低于零以避免无限循环。对不起,我以为您将此条件放置在其他位置,删除我的注释谢谢您提供的非常详细的帮助!抱歉,我以为您将此条件放置在其他位置,删除我的注释谢谢您他提供了非常详细的帮助!这并没有解决不显示负数的问题,也没有提供任何解释,也没有比您10分钟前发布的答案增加任何价值。如果npc.health
不能被character.damage
整除,则在破解之前仍然会显示负数loop.so更改了我的代码,如果健康状况为负数,则循环将被阻止,负数将不会被打印。这不解决不显示负数的问题,也不提供任何解释,也不会比您10分钟前发布的答案增加任何价值。如果npc.health
不能被字符整除。损坏
,在断开循环之前仍会显示负数。因此,更改了我的代码,如果健康状况变为负数,则循环将被制动,ne