Right now, in the grid world problem description, it says "We receive a cost of 1 for bumping against the outer border of the grid.", but in the problem implementation, it appears that a deterministic reward of -0.7 is hard coded when an action towards the edge is taken from an edge state (this is E[reward(s,a,sp)|s,a]).
Since, if a wall is bumped, the state remains the same, it is certainly possible to implement what the problem description actually says with reward(s,a,sp) by checking whether the state remains the same. This makes visualization difficult though.
A simpler alternative would be to say that a cost of 1 is accrued when an action that corresponds to moving out of bounds is taken. That way, the true reward can be captured with reward(s,a).
Can I change to a reward(s,a) formulation, or do we want to work through the difficulties associated with the current reward(s,a,sp) description?