terrainFunction implementation. If a position is out of the level's bounds it is false, and if it is in bounds but a '-' it is false. All other scenarios make the position true.
findChar implementation
startBlock is when both block elements are in startPos
Block is standing when both constituent blocks are in the same position i.e. equal
The block is in a legal position if both subblocks are on the terrain
neighbors are easily determined by using existing methods, and the legal ones are a filtered subset of them based the predicate 'isLegal'
Solution is done if block is standing on the goal
neighborsWithHistory in terms of legalNeighbors, with a test case from assignment notes
newNeighborsOnly is neighbors with the explored ones filtered out
implementation of from completely analogous to lecture exercise for pouring problem. the paths lazy gals were simple enough so put them together until solution which makes the tests pass.
Handle the case when there are no paths to take a solution from, as pointed out by auto grader.