2012-04-04 5 views
0

저는 텍스트 기반 어드벤처 게임 프로젝트를 진행하고 있습니다. 그것은 항목이있는 방과 방에서 방으로 이동하는 것을 포함합니다. Item이라는 클래스와 Room이라는 큰 클래스가 있습니다. 내 모든 additem 메서드를 제외하고 완벽하게 작동합니다. 빈 방에 항목을 넣거나 방에있는 항목을 교체해야합니다. 새 방을 만들 때 항목을 방에 넣을 수 있으며 removeItem 메서드가 작동하지만 addItem은 비어 있거나 전체 방이 아닌 채로 작동합니다. 나는 어떤 종류의 "room"변수를 놓치고 있는가? (나의 교수는 그런 것을 언급하지 않았다) 또는 item 변수에 대한 나의 문제인가?변수가 누락 되었습니까?

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; 
} 

item = i;하기에이 오류가 있었 : 여기에 클래스 룸의 전체 코드는?

희망이 도움이됩니다.

+0

와우 ... 얼마나 난처하게도 간단한 오류 및 수정. 고맙습니다! –

0

어떤 일이 일어나고하는 대신 다른 방법으로 주위의, item에, 인스턴스 변수를 참조를 매개 변수를 i을주고있는 것입니다. 메서드가 종료되고 i이 더 이상 존재하지 않으며 아무 것도 변경되지 않았습니다.

관련 문제