我正在用Java創建一個命令行遊戲。有一個遊戲課堂和課堂課程的基本前提:進入正確的房間,遊戲結束。HashMap返回null
從每個房間的用戶可以通過移動方向:
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方法返回nil,所以這個問題是我的getNeighbor方法我的房類中或可能與我怎麼創造房間。這裏是客房類中我getNeighbor方法:
public Room getNeighbor(String rDirection){
Room next = map.get(rDirection);
return next;
}
這需要我的字符串,並期待在我創建,看看他們是朝着這一方向鍵一個房間一個HashMap的地圖。恐怕這個問題是我如何創建我的房間的方向的HashMap:
在我的房間類別:
private HashMap<String , Room> map = new HashMap<String , Room>();
我有一個創建地圖的方法在我的房間類,我初始化我比賽的時候調用。下面是增加方向的方法,然後我在我的遊戲類我打電話:
// 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);
我無法找到一個鄰居到我的房間,從任何一個房間我看看。錯誤發生在註釋行上,但我認爲這是我的房間類方法,或者我創建HashMap的方式(我以前從未使用過)。無論如何,我想知道是否有人能夠幫助指出我似乎錯過了什麼,以及爲什麼我的房間在我的地圖中沒有任何鄰居。萬分感謝。
爲了更好地幫助您:1)發佈[SSCCE](http://sscce.org/)。 2)提出問題。 –