저는 Java로 명령 행 게임을 만들고 있습니다. Game 클래스와 Room 클래스가 있다는 기본 전제가 있습니다. 올바른 방에 도착하면 게임이 끝납니다. 사용자가 방향으로 이동할 수 있습니다 각 방에서 null을 반환하는 HashMap
: 문제가public void move (String direction) {
Room nextRoom = currentLocation.getNeighbor(direction); //this is the problem, always nil
if (nextRoom == null){
msg = "You can't go in that direction";
}else{
currentLocation = nextRoom;
msg = currentLocation.getLongDescription();
}
}
이 .getNeighbor 방법은 반환 전무를, 그래서 문제가 방법으로 어쩌면 내 룸 클래스 내에서 내 getNeighbor 방법으로 또는 I 방을 만들고있어. 이건 내 문자열을 사용, 나는 그 방향 키에 방들이 있는지 확인하기 위해 생성 한 HashMap의지도를 보이는
public Room getNeighbor(String rDirection){
Room next = map.get(rDirection);
return next;
}
: 여기 객실 클래스 내에서 내 getNeighbor 방법이다. 내 게임을 초기화 할 때 내가 전화를 내 방 클래스에서 만드는지도 방법을
private HashMap<String , Room> map = new HashMap<String , Room>();
: 내 방 클래스에서
: 나는 문제가 내 방에의 방향의 HashMap을 만드는거야 어떻게 두려워 . 여기에 방향을 추가하는 방법이다 다음 내 게임 클래스에서 호출하고있어 :
// Room Class Method
public void addNeighbor(String rDirection, Room r){
map.put(rDirection, r);
}
// Game Class - Initializing the Rooms
kitchen.addNeighbor("east", foyer);
kitchen.addNeighbor("north", library);
나는 내 모습 어떤 방에서 내 방으로 이웃을 찾을 수 없습니다입니다. 주석 처리 된 줄에서 오류가 발생하지만 실제로는 Room 클래스 메서드 또는 HashMap을 만드는 방식과 같다고 생각합니다. 어쨌든 누군가가 내가 놓친 것, 그리고 내 방에서 내지도에 어떤 이웃도 없는데도 문제가 무엇인지 지적 할 수 있는지 궁금합니다. 엄청 고마워.
더 나은 도움을 받으려면 다음과 같이하십시오. 1) [SSCCE] (http://sscce.org/)를 게시하십시오. 2) 질문을하십시오. –