Add parameter validation and distances to end

* TODO: break methods out more
* TODO: calculate maximum number of cells that can be blocked to give more
* accurate error message? cap number of times algorithm tries to find a
* cell to block?
* TODO: allow border cells to be blocked