在C#中循环无法使此结束>.<

Mak*_*shi 0 c# loops

现在我正试图这样做,所以我有1个角色和3个敌人,如果我的角色死了它应该给游戏结束或者什么但是我不能让它工作(如果敌人死了它的作品我不做我知道为什么).

这是我正在做的事情:

        bool Exit = false;
        bool CharDead = false;

        Heroe Heroe1 = p.ElementAt(0);
        Enemigo Enemigo1 = l.ElementAt(0);
        Enemigo Enemigo2 = l.ElementAt(1);
        Enemigo Enemigo3 = l.ElementAt(2);
        a.Agregar(comienza);
        List<Items> item = new List<Items>();
        do
        {
            if (Heroe1.HP > 0)
                AccionesHeroe1(l, p);

            if (Enemigo1.HP > 0)
                AccionesEnemigo1(l, p);

            if (Enemigo2.HP > 0)
                AccionesEnemigo2(l, p);

            if (Heroe1.HP > 0)
                AccionesHeroe1(l, p);
            else
                CharDead = true;
            if (Enemigo3.HP > 0)
                AccionesEnemigo3(l, p);

            if (Heroe1.HP <= 0)
            {
                CharDead = true;
            }
            if (Enemigo1.HP <= 0 && Enemigo2.HP <= 0 && Enemigo3.HP <= 0)
            {
                Exit = true;
            }

        } while (Exit == false || CharDead == false);
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 6

你的结局条件是:

 (Exit == false || CharDead == false);
Run Code Online (Sandbox Code Playgroud)

这只会在CharDead Exit都为真时退出.

你可能想重做它:

 (Exit == false && CharDead == false);
Run Code Online (Sandbox Code Playgroud)

这样,只要Exit不为false或CharDead不为false,您就会退出.

  • 此外,它更贴"说"(!退出&&!CharDead)".很长的路要写"如果exit与false的比较是真的,而chardead与false的比较是真的",这似乎是不必要的冗长.简短的方法是"如果退出不正确且chardead不正确". (2认同)