嘿,我有点卡住了,我一直在寻找创建这种类型的迷你游戏的最好方法,基本上玩家会进入一个大厅(他们现在被存储在一个地图或数组中),然后当游戏开始时,游戏将从地图或数组中随机选择一个人成为被感染的人(现在将这个玩家从地图/数组中删除到受感染的地图/数组中)
我该怎么做呢?我以前试过,但最终失败了。
到目前为止,我有类似这样的设置,只是为了测试它
private static HashMap<String, Integer> infected = new HashMap<String, Integer>();
private static HashMap<String, Integer> survivors = new HashMap<String, Integer>();
private static HashMap<String, Integer> lobby = new HashMap<String, Integer>();
在我们说话的时候,我正在尝试在那里存储随机名称,并将对其进行测试
发布于 2012-09-05 06:39:52
我可能会保留一份所有可用的玩家的“主”列表。从那里,我简单地创建了一个“受感染”玩家的参考列表。
然后,您只需调用“已感染”列表中的contains
,即可确定玩家是否已被感染。
但需要更多信息...
发布于 2012-09-05 07:21:09
我不认为HashMap
是真正正确的数据结构,也许可以考虑创建一个包含“Buff”集合的球员类,您的Game
可以维护多个受感染球员的列表,但在单个列表中查找该球员可能会更简单。
interface Moveable {
public void forward;
public void back;
public void left;
public void right;
}
interface Buffable {
public void addBuff(Buff buff);
public void removeBuff(Buff buff);
public boolean hasBuff(Buff buff);
}
class Player implements Moveable, Buffable {
private String name;
private int health;
private List<Buff> buffs;
/*
contructor etc
*/
public void addBuff(Buff buff) {
buffs.add(buff);
}
public void removeBuff(Buff buff) {
buffs.remove(buff);
}
public void hasBuff(Buff buff) {
return buffs.contains(buff);
}
}
class Game {
private List<Player> players;
private List<Player> infected;
/*
constructor etc
*/
public void infect(int player) {
Player p = players.get(player);
p.addBuff(new Infection());
infected.add(p); // see or
}
// or
public List<Player> getInfectedPlayers() {
List<Player> ret = new List<Player>();
Buff b = new Infection();
for (Player p : players) {
if (p.hasBuff(b)) {
ret.add(p);
}
}
return ret;
}
}
https://stackoverflow.com/questions/12272145
复制相似问题