Pick the node with the highest unassigned degree, connect it to the other unconnected nodes with the highest unassigned degrees (where unassigned degree is the difference between the target degree and the degree of edges we've assigned in previous iterations)
I don't fully understand your second point. If there isn't a requirement to create a connected graph it can pick arbitrarily between nodes of equal unassigned degrees.
[1] My brain is too tired to come up with a better term than unassigned
I find it interesting that yours appears simpler on the face of it, but has more edge cases. Seems like mine would be simpler if you were actually writing out the steps properly.
1. Pick the node with the highest degree 2. Make all the connections for that node until it has a value of zero by connecting it with the highest-value node that it isn't already connected to
For example, in this scenario: http://i.imgur.com/O8MlWzz.png
The way that I see it is that since the highest-degree node needs to make X number of connections, ensure it can make all of those connections before worrying about anything else. In this case, that means start by connecting the 4 to the next highest value node - the 3, then the 2, then the other 2, then the 1.
This leaves the following situation: http://i.imgur.com/9vZjafr.png
It's kind of easy to see where it goes from there. Sure this is a simple example, but as I said it's worked 100% of the time I've tried it.
http://en.wikipedia.org/wiki/V._J._Havel
is not the better known Czech politician of the same name
Worked for me so far, and I'm about 6 levels in with the largest node being 8.
http://www.chiark.greenend.org.uk/~sgtatham/puzzles/
(Say goodbye to your productivity if you like puzzles).
Given that the only reason to select an edge right now is to delete it, perhaps the delete action could be mapped to a click, rather than a click plus a backspace. Also, a reset level button would be nice.
Also, deleting links needs some work: I think the hit detection is too small. Also, a mouse-only way to delete would be nice -- how about right clicking? Double clicking would be another possibility (and I assume more touch friendly).
Bit of overkill, but fun game overall !
reward my success!