public class State
{
    public State (Coordinate coord, Set<Character> keys, int steps)
    {
        _coord = coord;
        _keys = keys;
        _steps = steps;
    }

    public Coordinate getPosition ()
    {
        return _coord;
    }
    
    public int numberOfKeys ()
    {
        return _keys.size();
    }

    public int numberOfSteps ()
    {
        return _steps;
    }

    private Coordinate _coord;
    private Set<Character> _keys;
    private int _steps;
}

@@ -154,30 +154,64 @@
 ps = steps;%0A
+        _id = Util.keycode(keys);%0A
     %7D%0A
-
 %0A    public 
@@ -275,13 +275,9 @@
   %7D%0A
-    
 %0A
+
     
@@ -409,24 +409,301 @@
 eps;%0A    %7D%0A%0A
+    public boolean hasKey (char door)%0A    %7B%0A        char key = Character.toLowerCase(door);%0A%0A        return _keys.contains(door);%0A    %7D%0A%0A    public Set%3CCharacter%3E getKeys ()%0A    %7B%0A        return _keys;%0A    %7D%0A%0A    public String getIdentifier ()%0A    %7B%0A        return _id;%0A    %7D%0A%0A
     private 
@@ -751,24 +751,24 @@
 ter%3E _keys;%0A
-
     private 
@@ -779,10 +779,34 @@
 _steps;%0A
+    private String _id;%0A
 %7D%0A

Update State.java