2012-04-04 13 views
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; 
    } 
} 
+1

upvoteによって投票されました。これは正当な質問であり、あなたはそれをよく尋ねました。 –

答えて

2
public void addItem (Item i){ 
    item = i; 
} 

の変更i = item;は、それがこのエラーましたか?

これが役に立ちます。

何が起こっているフィル・

+0

うわー...恥ずかしいほど単純なエラーと修正。ありがとうございました! –

0

は、あなたの代わりに他の方法で回避のため、、、、インスタンス変数をitemへの参照を、パラメータをiを与えているということです。メソッドは終了し、iは存在しなくなりました。何も変更されていません。

関連する問題