/*
 * A cell in the image taken by the Camera.
 */

public class Cell
{
    public Cell (Coordinate coord, char contents, boolean debug)
    {
        _coord = coord;
        _contents = contents;
        _debug = debug;
    }
    
    public final Coordinate position ()
    {
        return _coord;
    }

    public boolean isEntrance ()
    {
        return false;
    }

    public boolean isDoor ()
    {
        return false;
    }

    public boolean isKey ()
    {
        return false;
    }
    
    @Override
    public int hashCode ()
    {
        return _coord.hashCode();
    }

    @Override
    public boolean equals (Object obj)
    {
        if (obj == null)
            return false;

        if (this == obj)
            return true;
        
        if (getClass() == obj.getClass())
        {
            Cell temp = (Cell) obj;

            return temp.position().equals(position());
        }

        return false;
    }

    @Override
    public String toString ()
    {
        return "Cell at "+_coord+" is "+_contents;
    }

    private Coordinate _coord;
    private char _contents;
    private boolean _debug;
}
@@ -221,24 +221,104 @@
 %0A    %7D%0A    %0A
+    public final char getContents ()%0A    %7B%0A        return _contents;%0A    %7D%0A    %0A
     public f
@@ -427,37 +427,62 @@
 %0A        return 
-false
+(_contents == CellId.ENTRANCE)
 ;%0A    %7D%0A%0A    pub
@@ -516,37 +516,64 @@
 %0A        return 
-false
+Character.isLowerCase(_contents)
 ;%0A    %7D%0A%0A    pub
@@ -614,29 +614,147 @@
  return 
-false
+Character.isUpperCase(_contents);%0A    %7D%0A%0A    public boolean isWall ()%0A    %7B%0A        return (_contents == CellId.STONE_WALL)
 ;%0A    %7D%0A
     %0A   
@@ -741,28 +741,120 @@
 ALL);%0A    %7D%0A
+%0A
     
+public boolean isPassage ()%0A    %7B%0A        return (_contents == CellId.OPEN_PASSAGE);%0A    %7D%0A
 %0A    @Overri

Update Cell.java