私はテキストベースのアドベンチャーゲームプロジェクトに取り組んでいます。部屋にはアイテムがあり、部屋から部屋までナビゲートしています。 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;
}
}
upvoteによって投票されました。これは正当な質問であり、あなたはそれをよく尋ねました。 –