Newky/Jon-s-Puzzle-Collection — comment on commit 1e71675c612629459dbc7d9a0674e6aac7a954bc
File:  line 0
By Newky:

Yup, that might work as well. Can't say mine was that well thought out, It was something I came up with one the spot.

I'll just try run through the different things we have to do and we can analyse how you would do it with both systems:

Representing a connection
---------------------------------------

In my system, each connection is represented as an increment in that direction. As there will be at most 1 island in either direction, the max amount of bridges in a direction will be 2 (not 3 as I've written above in comments). I.e in order to add a bridge (forgetting for the moment about errors etc) we just need to increment the direction value for the pair of islands.
For example we want to join two nodes at coordinates (0,0) and (0,1) we can see it is left to right and a right to left. so we

(0,0)(R) ++;
(0,1)(L) ++;

Where L and R are the direction values for that grid position.

There are a number of checks after this to make sure it is a valid grid position, such as the bridge crossing.
Lets consider the horizontal case.

x1 x2 x3
x4 x5
x6 x7 x8

Assume that each of these are islands and there exists a bridge from 2 to 7.
We want to check if its valid for there to be a bridge between 4 and 5.
Lets assume they are (0,1) and (2,1) in terms of grid position.
we then go along each column. and check the closest island upwards for a downward bridge.
If this is the case for all columns across until we get to the island we have a valid bridge.
The same thing holds true for the vertical bridges.

Hopefully this all makes sense, Its all a bit rushed, but I think this should work. But again there is absolutely no hard feelings if you think yours better represents the grid. I'm pretty sure mine will work, and that the complexity should not be too large.