2011-12-02 52 views
1

我討厭在這裏問一個家庭作業問題,但我無法提供幫助。我在學校參加一個ActionScript課程,這是我第一次學習一門編程語言,所以我覺得自己很不習慣。需要幫助的同時循環調試ActionScript

問題是讓RPG遊戲在循環時練習。

 var fighter1:String = "Wonder Woman"; 
     var fighter2:String = "Ms. Marvel"; 
     var health1:uint = 300; 
     var health2:uint = 180; 
     var damage1:uint = 30; 
     var damage2:uint = 40; 


     while (health1 >= 0 && health2 >= 0) 
     { 
      var damageDealt1:uint = Math.random() * damage1; 
      var damageDealt2:uint = Math.random() * damage2; 
      var attack1:uint = health2 - damageDealt1; 
      var attack2:uint = health1 - damageDealt2; 
      health1 = attack2; 
      health2 = attack1; 
      trace("After attack: " + fighter1 + " HP: " + health1 + ", " + 
      fighter2 + " HP: " + health2); 
     } 
     if (health1==0&&health2==0){ 
      trace("They both died in battle! There will now be WAR!"); 
     } else if (health1==0) { 
      trace(fighter2 + " won!"); 
     } else { 
      trace(fighter1 + " won!" 
     } 

正如你可能知道的那樣,damage1是戰士1的潛在傷害,damageDealt1是每次攻擊造成的傷害。

一切似乎只是當我運行它,我得到正常工作的:

After attack: Wonder Woman HP: 4280752046, Ms. Marvel HP: 4284398685 
After attack: Wonder Woman HP: 4280752039, Ms. Marvel HP: 4284398660 
After attack: Wonder Woman HP: 4280752024, Ms. Marvel HP: 4284398658 
After attack: Wonder Woman HP: 4280752018, Ms. Marvel HP: 4284398639 
After attack: Wonder Woman HP: 4280751997, Ms. Marvel HP: 4284398638 
After attack: Wonder Woman HP: 4280751996, Ms. Marvel HP: 4284398612 
After attack: Wonder Woman HP: 4280751994, Ms. Marvel HP: 4284398609 

循環往復......

我把它翻譯到PHP和它工作得很好,我只是弄清楚我在這裏做錯了什麼。

任何想法?提前致謝。

+4

使用int,不是UINT,因爲你的價值觀永遠不會達到小於0。 – turbosqel

回答

0

爲turbosqel說 - 你必須使用的INT而不是單位:

var fighter1:String = "Wonder Woman"; 
var fighter2:String = "Ms. Marvel"; 
var health1:int = 300; 
var health2:int = 180; 
var damage1:uint = 30; 
var damage2:uint = 40; 


    while (health1 > 0 && health2 > 0) 
    { 
     var damageDealt1:uint = Math.random() * damage1; 
     var damageDealt2:uint = Math.random() * damage2; 
     var attack1:uint = health2 - damageDealt1; 
     var attack2:uint = health1 - damageDealt2; 
     health1 = attack2; 
     health2 = attack1; 

     if (health1 < 0) health1 = 0; 
     if (health2 < 0) health2 = 0; 

     trace("After attack: " + fighter1 + " HP: " + health1 + ", " + 
     fighter2 + " HP: " + health2); 
    } 

    if (health1==0&&health2==0){ 
     trace("They both died in battle! There will now be WAR!"); 
    } else if (health1==0) { 
     trace(fighter2 + " won!"); 
    } else { 
     trace(fighter1 + " won!" 
    } 
+0

謝謝,經過幾分鐘的盯着屏幕後,我得出了同樣的結論。我試圖自己回答,但我沒有足夠的聲譽。 謝謝! – Syren