2016-07-19 18 views
-4

ゲームに2人のプレイヤーがいて、それがJavaでコード化されている場合、ゲームの攻撃総数を追跡するにはどうすればよいですか?各プレイヤーが獲得した攻撃の数と各プレイヤーが攻撃ごとに与えた平均ダメージを追跡します。ここで 初心者がJavaで作成しようとしています

は、私がこれまで何をやったかである:

public abstract class Player { 

    private int health = 1000; 
    private String playerName; 
    private String playerWeapon; 
    private String battleLocation; 
    private String specialGift; 
    private boolean isPain; 

    // Week2Day2 NVA.P8 HOMEWORK ACTIVITY ADDITON- next 4 lines only. including cb's. 
    public String trackAttacks(int totalAttacks, int attacksWon, int damageGiven) { 
     public String totalAttacks;         // added for P.8 *****REMOVE ME IF WRONG 
     private String totalattacksWon;       // added for P.8 *****REMOVE ME IF WRONG 
     private String averageDamageGiven;{      // added for P.8 *****REMOVE ME IF WRONG 

      public void printStats();       // added for P.8 *****REMOVE ME IF WRONG 
      {              // added for P.8 *****REMOVE ME IF WRONG 
       System.out.println("Attack " + this.attack); // added for P.8 *****REMOVE ME IF WRONG 
       // other stats         // added for P.8 *****REMOVE ME IF WRONG 
      }              // added for P.8 *****REMOVE ME IF WRONG 
     }               // added for P.8 *****REMOVE ME IF WRONG 
    }                // added for P.8 *****REMOVE ME IF WRONG 


    public int getHealth() { 
     return health; 
    } 

    public void removeHealth(int hit) { 
     health -= hit; 
    } 

    public String getPlayerName() { 
     return playerName; 
    } 

    public void setPlayerName(String playerName) { 
     this.playerName = playerName; 
    } 

    public String getPlayerWeapon() { 
     return playerWeapon; 
    } 

    public void setPlayerWeapon(String playerWeapon) { 
     this.playerWeapon = playerWeapon; 
    } 

    public String getBattleLocation() { 
     return battleLocation; 
    } 

    public void setBattleLocation(String battleLocation) { 
     this.battleLocation = battleLocation; 
    } 

    public String getSpecialGift() { 
     return specialGift; 

    } 

    public void setSpecialGift(String specialGift) { 
     this.specialGift = specialGift; 

    } 

    public boolean getisPain() { 
     return isPain; 

    } 

    public void setisSPain(boolean isPain) { 
     this.isPain = isPain; 
    } 

    public String gettotalAttacks() { // added for P.8 *****REMOVE ME IF WRONG 
     return totalAttacks; 
    } 

    public void settotalAttacks(String totalAttacks) { // added for P.8 *****REMOVE ME IF WRONG 
     this.totalAttacks = totalAttacks; 
    } 

    public String gettotalattacksWon() {     // added for P.8 *****REMOVE ME IF WRONG 
     return playerWeapon; 
    } 

    public void settotalattacksWon(String totalattacksWon) {// added for P.8*****REMOVE ME IF WRONG 
     this.totalattacksWon = totalattacksWon; 
    } 

    public String getaverageDamageGiven() {   // added for P.8*****REMOVE ME IF WRONG 
     return playerWeapon; 
    } 

    public void setaverageDamageGiven(String averageDamageGiven) { // added for P.8*****REMOVE ME IF WRONG 
     this.averageDamageGiven = averageDamageGiven; 


    } 

    private int getSpecialDamage(int Damage) { 
     double extDamage = 1; 
     int randNum = RandInt.randomInt(0, 100); 


     if (getSpecialGift().equalsIgnoreCase("speed") && randNum < 75) { 
      extDamage = 1.2; 

     } else if (getSpecialGift().equalsIgnoreCase("power") && randNum < 50) { 
      extDamage = 1.5; 
     } else if (getisPain() || getSpecialGift().equalsIgnoreCase("pain") && randNum < 10) { 
      setisSPain(true); 
      Damage -= 3; 
      if (Damage < 1) ; 
      { 
       Damage = 1; 
      } 
     } 
     extDamage = extDamage * Damage; 
     Double d = new Double(extDamage); 
     return d.intValue(); 
    } 

    public int getSharkAttack() { 
     int biteDamage = 0; 
     int randNum = RandInt.randomInt(0, 100); 

     if (getBattleLocation().equalsIgnoreCase("ocean") && randNum < 25) { 
      biteDamage = 100; 
      System.out.println("shark attack"); 
     } 

     if (randNum <= 5) { 
      biteDamage = 100; 
      System.out.println("bitten"); 
     } 
     return biteDamage; 
    } 
+1

これを行うためにあなたが把握している宿題の全体的なポイントはありませんか? – azurefrog

+1

[よくある質問です。](http://stackoverflow.com/help/how-to-ask) – Savior

+0

よく読んでください。私は行く板に戻ります。 –

答えて

1

あなたは、静的インスタンス変数を使用してみてください各プレイヤー間のゲームでの攻撃の合計数を追跡する場合。静的インスタンス変数は、同じ名前を持つすべてのオブジェクトによって共有されるため、何人のプレーヤーであっても、それらの間のすべての攻撃を常に追跡することは可能です。 Java Static vs Instance

各プレイヤーが獲得した攻撃の数を追跡し、各プレイヤーが攻撃ごとに与えた平均ダメージを追跡するには、オブジェクトインスタンス変数を再度使用してください。

public abstract class Player { 

    private static int totalAttacks; 
    private int attacksWon; 
    private int damageGiven; 
    private int health = 1000; 
    private String playerName; 
    private String playerWeapon; 
    private String battleLocation; 
    private String specialGift; 
    private boolean isPain; 

これで、trackAttacksメソッドを削除できます。正しいゲッターとセッターのメソッドを正しいロジックに置き換えてください。

関連する問題