各プレイヤーのターン後にプレイヤー番号を切り替えるメソッドを書いています。まだプレイしているプレーヤー(削除されていない)を追跡するブール配列を使用しています。したがって、ゲーム開始時の配列はtrueに初期化され、ゲーム内のプレーヤー数のサイズになります。プレーヤーが削除されると、インデックスの対応する値がfalseに設定されます(たとえば、プレーヤー2が削除されると、配列の3番目のインデックスがfalseに設定されます)。(注:プレーヤー0は存在するため、2人のプレーヤーがプレイしている場合はプレーヤー0とプレーヤー1です。)プレーヤー番号が最後のプレーヤーと等しい場合は、最初からやり直して、最初のプレーヤーを見つける必要があります。まだゲーム中です。それ以外の場合、プレーヤー番号は、まだ再生中の最初のプレーヤーに増加します。これが私が持っているものです:
public static int switchPlayer(int currentPlayer, boolean[] playerList) {
if(currentPlayer == playerList.length) {
for(int i = 0; i < playerList.length; i++) {
if(playerList[i] == true) {
currentPlayer = i;
break;
}
}
}
else {
for(int i = (currentPlayer+1); i < playerList.length; i++) {
if(playerList[i] == true) {
currentPlayer = i;
break;
}
}
}
return currentPlayer;
}
変更や提案はありますか?それは完全には機能しておらず、どこがうまくいかないのかわかりません。
答えの1つを実装しようとしましたが、実装方法がわかりません。誰かが解決策を持っていますか?