2012-09-04 5 views
0

안녕하세요 저는 조금만 붙어서 이런 종류의 미니 게임을 만들 수있는 가장 좋은 방법을 찾고 있습니다. 기본적으로 플레이어는 로비에 입장 할 것입니다 (그들은 이제지도 나 배열에 저장됩니다). 게임을 시작하면 무작위로 맵이나 배열에서 1 명을 감염시킬 것입니다. (감염된 맵/배열로 맵/배열에서이 플레이어를 제거합니다)미니 게임 만들기

어떻게 이런 일을할까요? 나는 결국 실패한다.

지금까지 내가이 설정 같은 것을 그냥 우리가 말하는 거기에 임의의 이름을 저장하기 위해 노력하고 내가 아마 계속 것

+0

'Map'의'String'과'Integer' 사이의 연결은 무엇입니까? – MadProgrammer

답변

0

그것을 테스트합니다

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>(); 

그것을 테스트해야 모든 사용 가능한 플레이어의 "마스터"목록입니다. 거기에서 나는 단순히 "감염된"플레이어의 참조 목록을 만들 것입니다.

"감염된"목록에서 contains을 호출하면 플레이어가 감염되었는지 여부를 확인할 수 있습니다.

하지만 추가 정보가 필요하십니까 ...

0

내가 HashMap 생각하지 않습니다 아마도 당신 중 하나를 여러 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; 
    } 
}