我正在开发一个基于文本的冒险游戏项目。它涉及带有物品的房间并在房间之间导航。有一个类叫做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;
}
}