2012-10-22 50 views
0

我正在編寫一個程序,將兩個坦克相互對齊。我寫了所有的方法,除了結束遊戲的火之外。到目前爲止Java坦克遊戲,創建消防方法

public class Tank { 
    Tank() { 
     int xPos, yPos; 
     char direction; 
     boolean loaded = 0; 
    } 

    public void move(Tank currentPlayer) { 
     if (yPos<=4 && yPos>=0) { 
      if (xPos<=4 && xPos>=0) { 
       if (currentPlayer.direction == 'u') { 
        currentPlayer.yPos--; 
       } 
       if (currentPlayer.direction == 'd') { 
        currentPlayer.yPos++; 
       } 
       if (currentPlayer.direction == 'l') { 
        currentPlayer.xPos--; 
       } 
       if (currentPlayer.direction == 'r') { 
        currentPlayer.xPos++; 
       } 
      } 
     } 
    } 

    public void turn(boolean bool, Tank currentPlayer) { 
     if (currentPlayer.direction == 'u') { 
      currentPlayer.direction ='r'; 
     } 
     if (currentPlayer.direction == 'd') { 
      currentPlayer.direction = 'l'; 
     } 
     if (currentPlayer.direction == 'l') { 
      currentPlayer.direction ='u'; 
     } 
     if (currentPlayer.direction == 'r') { 
      currentPlayer.direction ='d'; 
     } 
    } 

    public void load(Tank currentPlayer) { 
     currentPlayer.loaded=true; 
    } 

    public int fire(Tank currentPlayer, Tank jim) { 
     // ??? 
    }  
} 

我該如何去完成我的程序?任何幫助,將不勝感激。

+1

火做什麼?它會立即結束遊戲嗎?它是否發射了射彈? – Clark

+1

你如何確定槍擊命中另一輛坦克?如果是這樣,結束遊戲。 –

+0

如果坦克發射並擊中另一坦克,那麼是的,這是遊戲結束。我只是不確定如何檢查對方的位置。這有點太複雜了 – Bill

回答

1

您需要一個吸氣劑,用於x位置,y位置和坦克的當前方向。例如:

public int getX(); 
public int getY(); 
public char getOrientation(); 

通過調用這些方法,您應該獲得坦克的x位置,y位置和方向。然後檢查命中。你知道你面對的是什麼方向。所以如果你面朝上,看看另一輛坦克是否和你一樣,並且他們的Y高於你。

int otherX = jim.getX(); 
int otherY = jim.getY(); 

switch (currentPlayer.getOrientation()) 
{ 
    case 'u': 
     //Check if you're in same x 
     //Check if above player 
     break; 
    case ... etc. 
} 

然後在命中的情況下,換句話說,如果條件得到滿足。遊戲應該以currentPlayer勝利結束。