2017-12-23 20 views
1
public class Game1 { 
    public Game1 gamet1; 
    public int card1Hp = 100; 
    public int card2Hp = 80; 
    public int card1Apc = 20; 
    public int card2Apc = 30; 


    //Constructor 

    public void start() { 
     while (card1Hp > 0) { 
      battle(); 
     } 
    } 

    public void battle() { 
     System.out.println(card1Hp - card2Apc); 
    } 

    public static void main(String[] args) { 
     Game1 gamet1 = new Game1(); 
     gamet1.start(); 
    } 

} 

私は、戦闘方法がhp> 0の間に起動されるjavaでwhileループを実行したいが、それは繰り返され続け、hpは70にしかならず、0に落ちない。 whileループ。それは印刷70を続けておき、停止しません。ターンベース戦闘のためのループwhileループを繰り返す方法は?

+0

私はこれが同一人物であるかどうかわからないけど、ここに掲載まったく同じコードサンプルがあります:https://www.java-forums.org/new-java/97389-how- write-method-within-method.htmlと同じ人でない場合、彼らはおそらく同じ教授を持っています.... – SurfMan

+0

申し訳ありません、それは私です。私は繰り返し質問でインターネットを混乱させないようにしよう...その質問の答えは、ターンベース戦闘のために状態を維持し、私が最初にやろうとしているものよりはるかに優れたデザインを得ることです。これは、ループを止めるという質問に答えて、技術的なエラーを解決します。 – Qwisatz

答えて

2

カード1枚を減らしてみてください。 printlnは差を計算して出力します。それはcard1Hpを減少させません。だから、:

card1Hp = card1Hp - card2Apc; 
System.out.printLn(card1Hp); 
関連する問題