2012-04-04 36 views
0

我正在創建一個基於文本的冒險遊戲,涉及多個房間,房間內的物品,以及在這些房間中來回移動。房間的鄰居存儲在一個HashMap中,我根本沒有經驗。我有一個名爲getNeighbor的方法,意思是按照要求的方向返回房間的鄰居,但我無法弄清楚如何做到這一點。下面的代碼:我可以在這個if語句中返回什麼?

public class Room 
{ 
    private String roomDescript; 
    private Item item; 
    private HashMap <String, Room> myNeighbors; 

    public Room (String pDescription){ 
     roomDescript = pDescription; 
     item = null; 
    } 

    public Room (String pDescription, Item pItem){ 
     roomDescript = pDescription; 
     item = pItem; 
    } 

    public String setRoomDescript(){ 
     return this.roomDescript; 
    } 
    public String getRoomDescript(){ 
     return this.roomDescript; 
    } 
    public Item setItem(){ 
     return this.item; 
    } 
    public Item getItem(){ 
     return this.item; 
    } 

    public void addItem (Item i){ 
     i = item; 
    } 

    public boolean hasItem(){ 
     if(item != null){ 
      return true; 
     }else{ 
      return false; 
     } 
    } 

    public void addNeighbor (String pDirection, Room r){ 
     myNeighbors.put(pDirection, r); 
    } 

    public Room getNeighbor (String pDirection){ 
     if(myNeighbors.containsKey(pDirection)){ 
      return ; 
     }else{ 
      return null; 
     } 
    } 
} 

回答

0

這聽起來像你可以改變你的方法:

public Room getNeighbor (String pDirection) { 
    return myNeighbours.get(pDirection); 
} 

畢竟,Map.get()將返回null如果該鍵不反正找到。

0

使用HashMap.get(pDirection)

public Room getNeighbor (String pDirection){ 
    return myNeighbors.get(pDirection); 
} 

注意,你不需要if語句,因爲get()返回null已如果沒有了。

+0

感謝你們倆!這工作像一個魅力。 – 2012-04-04 23:43:44

+0

@MichaelMoore:不客氣。不要忘記[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)你發現對你最有幫助的答案。 – amit 2012-04-05 06:13:33