0

我正在开发一个基于文本的冒险游戏项目。它涉及带有物品的房间并在房间之间导航。有一个类叫做Item,这个更大的类叫做Room。除了我的 addItem 方法外,我所有的方法都可以正常工作。它应该将物品放入空房间或替换房间中的物品(如果它已经存在)。当我创建一个新房间时,我可以将一个项目放入一个房间,并且我的 removeItem 方法有效,但 addItem 既不能用于空房间也不能用于满房间。我是否缺少某种“房间”变量(我的教授没有提到类似的东西)或者我的项目变量有问题?这是课堂房间的完整代码:

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

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

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

    public String getRoomDescription(){
        return roomDescription;
    }

    public Item getItem(){
        return 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){
        return myNeighbors.get(pDirection);
    }

    public Item removeItem(){
        item = null;
        return item;
    }

    public String getLongDescription(){
        String longDescription = "You are at " + roomDescription + "You see " + item;
        return longDescription;
    }
}
4

3 回答 3

2

改变i = item;item = i;

于 2012-04-04T23:50:22.580 回答
2
public void addItem (Item i){
    item = i;
}

是这个错误吗?

希望这可以帮助。

菲尔

于 2012-04-04T23:51:31.563 回答
0

正在发生的事情是您正在给出i、 参数、 对item、 实例变量的引用,而不是相反。该方法结束并且i不再存在,没有任何改变。

于 2012-04-04T23:56:43.587 回答