2017-10-20 13 views
-2

私は簡単なゲームを作成しようとしています。このゲームには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 playerOne = new Player(...); 
Player playerTwo = new Player(...); 

Player currentPlayer; 

とあなたのプレーヤーを構築...部分はあなたが入力することがありますものではないことに注意してください、しかし、実際の情報あなたのためのプレースホルダ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 
関連する問題