@Override
	public List<VisualInput> getCurrentView() {
		TileIterator tileIterator = new TileIterator(mouse.getFacingDirection(),mouse.getCurrentTile());
		ArrayList<VisualInput> result = new ArrayList<VisualInput>();
		while(tileIterator.hasNext()) {
			Tile tile = tileIterator.next();
			VisualInput visualInput = null;
			if(tile != null && tile.isOccupied()) {
				if(tile.getUnitOnTile() instanceof Cat) {
					visualInput = VisualInput.Cat;
				} else if (tile.getUnitOnTile() instanceof Mouse) {
					visualInput = VisualInput.Mouse;
				} else if (tile.getUnitOnTile() instanceof Cheese) {
					visualInput = VisualInput.Cheese;
				} else {
					throw new RuntimeException("Don't know how to visually interpret: " + tile.getUnitOnTile().getClass().getSimpleName());
				}
			} else if(tile == null || !tile.isPassable()) {
				visualInput = VisualInput.Wall;
			}
			result.add(visualInput);
		}
		return result;
	}