テキストベースのアドベンチャー ゲーム プロジェクトに取り組んでいます。アイテムが入った部屋と、部屋から部屋への移動が含まれます。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;
}
}