2014-02-12 4 views
0

Я пытаюсь создать условие выигрыша для своей текстовой игры. У меня есть два метода, которые определяют, был ли игрок установлен критерий для победы или потери. Эти методы находятся в одном классе, в то время как я хочу использовать их в классе контроллера. Переменные hitTimes и nonHits:Передача переменных из метода класса в другой класс

class1:

if(choiceC > 0 || choiceR > 0) 
       { 
        Character currentCharacter; 
        currentCharacter= grid[choiceR][choiceC]; 
        gameBoard[choiceR][choiceC] = currentCharacter;  
        loseTest(currentCharacter); 
        winTest(currentCharacter); 

       } 
      } 
     } 
    } 
    public int loseTest(Character currentCharacter) 
    { 
     int hitTimes = 0; 
     if(currentCharacter.minePresent == true) 
     { 

      hitTimes = 1; 
     } 
     return hitTimes; 

    } 
    public int winTest(Character currentCharacter) 
    { 
     int nonHits = 0; 
     if(currentCharacter.minePresent == false) 
     { 
      nonHits++; 
     } 
     return nonHits; 
    } 

class2:

Grid grid = new Grid(); 
     double notMines = grid.notMine; 
     View view = new View(); 
     result = grid.toString(); 
     view.display(result); 
     final int ITERATIONS = 13; 
     final int numGames = 1000; 
     for (int i=0;i <= numGames; i++) 
     { 
     while (hitTimes != 1 || nonHits != notMines) 
     { 

      grid.runGame(); 
      result2 = grid.toString(); 
      view.display(result2); 
      if(nonHits == ITERATIONS) 
      { 
       System.out.println("You Win!"); 
      } 
      if(hitTimes == 1) 
      { 
       System.out.println("You Lose!"); 
      } 


     } 
    } 
+1

В чем вопрос? –

+0

какую переменную (ы) вы пытаетесь использовать? А что такое имя класса 1? – user2277872

ответ

1

Вы могли бы сделать булево атрибуты gameWon и gameLost, и поставить их обоих в ложном исходное значение. Тогда, если выполняются условия, вы превращаете один из них в истинный, в зависимости от случая. Сделайте также методы getter в своем классе, чтобы вы могли получить доступ к ним из другого класса.

Место это в вашем втором методе:

private boolean gameWon = false; 
private boolean gameLost = false; 

public boolean getGameWon() { 
    return gameWon; 
} 

public boolean getGameLost() { 
    return gameLost; 
} 

Изменение если условие также:

if(nonHits == ITERATIONS) 
{ 
    gameWon = true; 
} 
if(hitTimes == 1) 
{ 
    gameLost = true; 
} 

В вашем другом классе создать этот класс и получить доступ к gameWon/gameLost значения через добытчиками.

SecondClass sc = new SecondClass(); 
boolean isGameWon = sc.gameWon(); 
boolean isGameLost = sc.gameLost(); 

Надеюсь, я дал вам идею .. Я не могу увидеть весь ваш код, так что это всего лишь предположение, которое я сделал то, что вас беспокоит. Ура!

Смежные вопросы