2013-02-23 3 views
1

처음에는 배열의 기본값이 100으로 유지됩니다. 적의 상태가 좋지 않으면 기본값을 100으로 설정하고 싶습니다. 모든 배열 요소의 값이 0이되면 메시지는 게임 승리로 추적됩니다.배열의 for 루프 관련 문제

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이면 게임이 승리 할 때 마사지를 추적하는 것이 문제입니다.

이렇게 나에게 도움이 될 수 있습니다.

+0

모든 요소가 0인지 확인하기 위해 if 문을 원하십니까? –

+0

예 mr sharma. like (0,0,0,0,0); // 출력 게임 승리 – Chandu

답변

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"); 
} 
+0

고마워요. 미스터 dasblinkenlight 그게 나를 위해 가치. – Chandu

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"); 
} 
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"); 
} 
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") 
} 

은 내가 Vectorarray을 변경, 당신은 요소의 유형을 지정할 수 있지만, 그것은 또한 array와 함께 잘 작동합니다.