它适用于Java中的垄断型游戏。 我想知道如何通过他们的id获取特定玩家,它通过棋盘上的位置数组列表,检查每个人的arrayList以获得该特定玩家。
public class Board
private ArrayList<Location> AllLocations = new ArrayList<Location>();
public Player getPlayer(int pl){
int index = 0;
for(Location temp : AllLocations)
{
if(temp.getPlayerId() == pl)
{return temp;}
}
return null;
}
}
public abstract class Location {
private ArrayList<Player> Players = new ArrayList<Player>();
public Player getPlayerId (int id) {
int index = 0;
for(Player temp : Players)
{
if(temp.getId() == id)
{return temp;}
else
{return null;}
}
return null;
}
}
public class Player {
public int getId() {
return PlayerId;
}
}
我只是想得到它所以我可以找到iD 1的玩家,例如,他们在哪里。
答案 0 :(得分:1)
不是拥有位置列表而是必须根据id搜索玩家。将一个位置变量添加到播放器对象,以便播放器始终知道它所在的位置。
不相关,在for循环中使用temp作为变量名会使代码难以阅读。我建议使用更具描述性的名称,如“播放器”或“位置”。
答案 1 :(得分:0)
恕我直言位置类不应包含其上的玩家列表。在大多数情况下,这个列表将是空的,所以这是毫无意义的。考虑向玩家添加位置变量,或引入某种游戏控制器类,将玩家与他们的位置联系起来。
答案 2 :(得分:0)
如果您的ID不是连续的,您应该(在您的棋盘或游戏中)拥有一个包含所有玩家的列表(以ID为索引) - 或者一张地图。它们并没有真正独立于游戏而改变,因此总是无法有效地搜索它们。