1

最初、配列はデフォルト値を100として保持します。敵が体力を失った場合、デフォルト値を100から0に設定します。すべての配列要素の値が0になると、メッセージはゲームの勝利としてトレースされます。

var enemyHealth:Array = new Array(100,100,100,100,0);

    for (var i = 0; i< enemyHealth.length; i++)
    {

        if (enemyHealth[i] == 0)
        {
            trace ("game win");
        }

    }

実際の問題は、配列要素のいずれかが値0を保持している場合、ゲームの勝利としてマッサージをトレースすることです。

だから、誰もがこの点で私を助けることができます。

4

4 に答える 4

1

私はこのようなことをします

var enemyHealth:Array = new Array(100,100,100,100,0);

var isDead:Boolean = true;
for (var i = 0; i< enemyHealth.length; i++)
{

   if (enemyHealth[i] != 0)
   {
        isDead = false;
        break;
   }
}

if(isDead)
{
    trace ("Game Win");
}
于 2013-02-23T12:54:16.420 に答える
1

1つだけでなく、すべての要素をチェックする必要があります。

var allZero:Boolean = true;
var enemyHealth:Array = new Array(100,100,100,100,0);

for (var i = 0; i< enemyHealth.length; i++)
{

    if (enemyHealth[i] != 0)
    {
        allZero = false;
        break; // We know it's not a win, so we can stop the loop early
    }

}
if (allZero) {
    trace ("game win");
}
于 2013-02-23T12:54:33.067 に答える
1

他の回答者が言ったことや、正確な数の敵を死に至らしめるのに役立つかもしれないこのようなことをすることができます。

var enemyHealth:Array = new Array(100,100,100,100,0);
var enemiesDead:int=0;

    for (var i = 0; i< enemyHealth.length; i++)
    {

        if (enemyHealth[i] == 0)
        {
            enemiesDead++;
        }

    }

if(enemiesDead==enemyHealth.length)
{
    trace("Game Over");
}
于 2013-02-23T12:58:50.830 に答える
1

このeveryメソッドを使用して、配列(またはベクトル)のすべての要素が基準を満たしていることを確認できます。

const enemyHealth:Vector.<uint> = new <uint>[100,100,100,100,0];

const zeroHealth:Function = function(item:uint, index:int, vector:Vector.<uint>):Boolean {
   return item === 0;
}

if (enemyHealth.every(zeroHealth)) {
    trace("Game win")
}

より効率的で、要素のタイプを指定できるため、arrayをaに変更しましたが、。でも正常に機能します。Vectorarray

于 2013-02-23T13:34:38.040 に答える