2017-10-20 155 views
-2

我正在嘗試爲學習目的創建一個簡單的遊戲。這個遊戲有兩個玩家,每個都是自己的對象。每回合球員切換。在Java遊戲中切換玩家

對於每一個現在是時候另一個玩家把我切換使用的球員:

if (currentPlayer == playerOne) 
{ 
    currentPlayer = playerTwo; 
} 
else if (currentPlayer == playerTwo) 
{ 
    currentPlayer = playerOne; 
} 

注意currentPlayerplayerOne/Two是同一類的對象。

我在想,如果它是壞的做這樣或者有更好的方法來切換玩家

+4

什麼問題? –

+1

爲什麼不可能?有什麼可疑的? –

+0

請參閱:[爲什麼「可能......」措辭不佳?](https://softwareengineering.meta.stackexchange.com/questions/7273/why-is-is-it-possible-to -a-poorly-worded-question)假設它**是可能的,嘗試一些事情,並詢問如果你卡住了你試過的東西。 – EJoshuaS

回答

1

它可以這樣做的。所有的代碼都會遵循currentPlayer來確定哪個播放器是當前播放器。

要做到這一點,兩個球員應該共享相同的類型,也許是一個Player類。你會宣稱目前的播放器:

Player currentPlayer; 

構建你的球員

Player playerOne = new Player(...); 
Player playerTwo = new Player(...); 

注意,...部分是不是你會打字的,但實際的信息的佔位符,你當你設計構造函數Player時會寫。

0

你可以保持在列表中的玩家,並得到他們的指數在該列表中切換它們:

// initialize 
List<Player> players = Arrays.asList(new Player(...),new Player(...)); 
Player currentPlayer = players.get(0); 


// switch Player: 
currentPlayer = players.get(1-players.indexOf(currentPlayer)); 

// version for more than two players: 
// select the next player from list and restart with the first after the last: 
currentPlayer = players.get((players.indexOf(currentPlayer)+1)%players.size()); 

// similar by cycling the list 
currentPlayer = players.remove(0); // get the next player from list 
players.add(currentPlayer); // put it at the end of the list