0

私は、いくつかの部屋、部屋内のアイテム、およびこれらの部屋を行き来するテキスト ベースのアドベンチャー ゲームの作成に取り組んでいます。部屋の隣人は HashMap 内に保存されますが、これはまったく経験がありません。要求された方向で部屋の隣人を返すことを目的とした getNeighbor というメソッドがありますが、その方法がわかりません。コードは次のとおりです。

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;
        }
    }
}
4

2 に答える 2

0

メソッドを次のように変更できるようです。

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

いずれにせよ、キーが見つからない場合Map.get()は戻ります。null

于 2012-04-04T22:34:57.357 に答える
0

使用HashMap.get(pDirection):

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

あまりない場合はすでにget()返されるため、ifステートメントは必要ないことに注意してください。null

于 2012-04-04T22:35:34.690 に答える