2012-04-04 8 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); 
} 

注全くずっと存在しない場合、あなたはすでにget()戻りnullので、if文は必要ありません。

+0

お二人のおかげで!これは魅力的に機能しました。 –

+0

@MichaelMoore:あなたは大歓迎です。最も役立つ答えを[承諾する]ことを忘れないでください(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – amit

関連する問題