package wumpus;

/**
 * Represents the world environment.
 */
public class Environment {
    public enum Items {
        WUMPUS, PIT, HUNTER, GOLD
    }

    public enum Perceptions {
        SCREAM, STENCH, BREEZE, GLITTER, BUMP, NOTHING, NO_ARROWS
    }

    public enum Actions {
        GO_FORWARD, TURN_LEFT, TURN_RIGHT, GRAB, SHOOT, NO_OP
    }

    public static String getIcon(Items item) {
        switch (item) {
            case WUMPUS: return "W";
            case HUNTER: return "H";
            case PIT: return "P";
            case GOLD: return "$";
        }
        return " ";
    }

    public static String getIcon(Perceptions perception) {
        switch (perception) {
            case STENCH: return "~";
            case BREEZE: return "≈";
            case GLITTER: return "*";
        }
        return " ";
    }
}

@@ -14,144 +14,372 @@
 s;%0A%0A
-/**%0A * Represents the world environment.%0A */%0Apublic class Environment %7B%0A    public enum Items %7B%0A        WUMPUS, PIT, HUNTER, GOLD%0A    %7D%0A
+import java.util.ArrayList;%0A%0Aimport static wumpus.Environment.Actions.GO_FORWARD;%0A%0A/**%0A * Represents the world environment.%0A */%0Apublic class Environment %7B%0A    /**%0A     * The items that can be found at the world blocks.%0A     */%0A    public enum Items %7B%0A        WUMPUS, PIT, HUNTER, GOLD%0A    %7D%0A%0A    /**%0A     * The perceptions that can be sensed by the player.%0A     */
 %0A   
@@ -470,32 +470,93 @@
 O_ARROWS%0A    %7D%0A%0A
+    /**%0A     * The actions that the player can take.%0A     */%0A
     public enum 
@@ -626,32 +626,1104 @@
 T, NO_OP%0A    %7D%0A%0A
+    /**%0A     * The final outcome of the game.%0A     */%0A    public enum Result %7B%0A        WIN, LOOSE%0A    %7D%0A%0A    /**%0A     * Returns the player score based on his list of actions and current state.%0A     * @param player The player instance%0A     * @return The current score%0A     */%0A    public static int getScore(Player player) %7B%0A        int sum = 0;%0A        // Score if have deceased%0A        if (player.isDead()) sum += -1000;%0A        // Score if have picked the gold%0A        if (player.hasGold()) sum += +1000;%0A        // Calculate the score for each action%0A        for(Actions action : player.getActions()) %7B%0A            switch (action) %7B%0A                case GO_FORWARD:%0A                case TURN_LEFT:%0A                case TURN_RIGHT:%0A                case GRAB:%0A                    sum += -1;%0A                    break;%0A                case SHOOT:%0A                    sum += -10;%0A                    break;%0A            %7D%0A        %7D%0A        return sum;%0A    %7D%0A%0A    /**%0A     * Returns the icon for a environment item.%0A     * @param item The item%0A     * @return The icon%0A     */%0A
     public stati
@@ -1953,24 +1953,147 @@
 %22 %22;%0A    %7D%0A%0A
+    /**%0A     * Returns the icon for a perceptions.%0A     * @param perception The perception%0A     * @return The icon%0A     */%0A
     public s
@@ -2161,32 +2161,70 @@
  (perception) %7B%0A
+            case GLITTER: return %22*%22;%0A
             case
@@ -2289,32 +2289,448 @@
         
+%7D%0A
     
-case GLITTER
+    return %22 %22;%0A    %7D%0A%0A    /**%0A     * Return the icon of the player based in its direction o if its dead.%0A     * @param player The player instance%0A     * @return The icon%0A     */%0A    public static String getIcon(Player player) %7B%0A        if (player.isDead()) return %22%E2%80%A0%22;%0A%0A        switch (player.getDirection()) %7B%0A            case N: return %22%E2%86%91%22;%0A            case E: return %22%E2%86%92%22;%0A            case S: return %22%E2%86%93%22;%0A            case W
 : return
@@ -2723,33 +2723,33 @@
 case W: return %22
-*
+%E2%86%90
 %22;%0A        %7D%0A   
@@ -2737,32 +2737,33 @@
  %22%E2%86%90%22;%0A        %7D%0A
+%0A
         return %22
@@ -2754,28 +2754,28 @@
         return %22
- 
+H
 %22;%0A    %7D%0A%7D%0A

Add a score method and more icons to the environment and improve docstrings on it