I found this puzzle on Quora and decided to solve it using NodeBox...
Given twelve dots in a cross pattern the puzzle is to find all possible squares where each corner of the square lands on a separate dot.
Here is the Quora link: https://www.quora.com/Can-you-solve-the-green-dot-square-logic-puzzle
To solve the puzzle I found all 495 possible ways of choosing 4 dots from a set of 12 and counted the number of unique side lengths of the resulting quadrilaterals. Whenever that count was one (all sides equal) I found another square. I used more nodes drawing the solutions than I did finding them (see screenshot).
Writing the Nodebox network was a more interesting puzzle than the puzzle itself. There were two challenges.
First, how do you list all possible combinations for (N choose K)? Most algorithms in other languages use recursion, but Nodebox doesn't do recursion. If you know K you can hardcode nested for loops, but NodeBox doesn't do loops either. I finally came up with a simple solution that could be easily adapted to other cases using a subnetwork called AddCombo.
For N choose K, create a list of integers from 0 to N-K+1. Feed that into the first AddCombo node and set "Upper Bound" to N-K+2. Feed that into another AddCombo with Upper Bound set to N-K+3. Repeat until the final Upper Bound = N. The final AddCombo box will generate a list of comma-separated strings with every possible combination.
The other challenge was finding the sides of the resulting quadrilaterals (and later drawing the squares). This is trickier than it might seem at first because you don't know what order the points are in so you can't just connect them. With 4 points there are 6 possible connections (4 sides plus 2 diagonals). Fortunately, the diagonals will always be longer than the sides so you can use that information to cull the diagonals.
Screenshot and NodeBox network attached. Enjoy!