2014-11-21 27 views
-3

我正在製作一個基於文本的角鬥士戰鬥遊戲。我遇到的問題是,當我嘗試調用它時,它不會進入其他課程。這是我的。如何調用Java類 - Eclipse

主類

if (fill.equals("1")) { 
    arena = true; 
    while (arena == true) { 
     System.out.println("You travel to the arena."); 
     fill = scan.next(); 
     System.out.println("Vanguard: Welcome!"); 
     System.out.println("1) Enter the arena."); 
     System.out.println("2) Exit the arena."); 
     fill = scan.next(); 
     if (fill.equals("1")) { 
      System.out.println("Vanguard: These are the available matches:"); 
      if (rank == "Rookie") { 
       System.out.println("1) Snow"); 
       System.out.println("2) Blaze"); 
       System.out.println("3) Ember"); 
       fill = scan.next(); 

       if (fill.equals("1")) { 
        System.out.println("You with to battle Snow? Y/N"); 
        fill = scan.next(); 
        fill = fill.toLowerCase(); 
        if (fill.equals("y")) { 
         enemy = "Snow"; 
         enemyhealth = 35; 
         enemydamage = enemydamrn.nextInt((7 - 5) + 1) + 5; 
         System.out.println("You go to the arena to prepare with snow."); 

         Battle Battle = new Battle(); 
        }  
       } 
      } 
     } 
    } 
} 

當我鍵入「Y」到掃描儀,它只會在重新啓動while語句,而不是去的類。

我將不勝感激任何幫助,我可以得到與此。我對Java很新,我已經使用了它1.5個月左右的編碼,我希望能夠找出這個問題。我希望你們中的任何一位都能幫助我!^_ ^/

+0

你在哪裏設置'arena = false'?這似乎是退出while循環的合理方法。 – vikingsteve 2014-11-21 17:35:32

+0

你預計'Battle Battle = new Battle()'做了什麼? – Eran 2014-11-21 17:35:42

+0

有趣的是你會使用'fill.equals(「1」)''但是'rank ==「菜鳥」' – njzk2 2014-11-21 17:36:45

回答

1

當你說

Battle Battle = new Battle(); 

你構造的Battle一個新實例真是不幸名。我建議你嘗試

Battle battle = new Battle(); 

,然後(除非你做的Battle構造函數,我會建議的一切),你需要給你打電話要你的Battle實例執行類似

battle.someMethod(); 
方法

此外,

if (rank == "Rookie") { 

不會比較String(S)工作。這是參考平等(不是價值)。你需要測試String等於

if (rank.equals("Rookie")) { 
+0

加1用於在camelCasing Java約定中指示OP作戰對象。雖然它可能值得注意,但你可以保留它而不是調用方法。在'Battle'的構造函數中擁有一切@ – sircapsalot 2014-11-21 17:37:36

+0

@OP可能類似於:while(battle.isActive()){...}'而不是在構造函數中 – sircapsalot 2014-11-21 17:39:23