Net can be done with reasoning rather than mindless iteration. You start by locking in end points surrounded by other end points except for one free space. if you have a straight line that can connect two end points then you lock it in the other orientation. If a line is locked next to a T pipe, the back of the t pipe goes against the line. If a corner piece is next to a locked pipe, you know that the side opposite the incoming pipe is empty, so it could be the back of a T or the side of a line piece, etc.