Given for example, a Hydrogen atom (that can only have 1 bond max), that is sitting on a bonder next to two other atoms that are also on bonders and have available bonding slots, how is it determined which atom the Hydrogen ends up bonding to? I've tried experimenting with it being a priority order of directions, but that doesn't seem to be correct.
|
I'm afraid there's no real science behind this. Each bonder has a priority number likely based on the internal data structure (array, linked list, whatever). The game just processes this list in a first through last order. So the bonding order in game is just how the bonders happen to be arranged. I would be nice if they were labeled, but as far as I know there's no way to get their priority in game. So with two bonders linked, it just goes through the list sequentially. For example, with 4 bonders the list of checked links would look something like this:
Which is simply an ordered list of the pairs of priority numbers. With that knowledge, you just need to know which bonder has which priority. Though experimentation I've found that: For 4 bonders in a fresh level the bonder priority numbers are:
For a fresh level with 8 bonders the bonder priority numbers are:
|
|||||||||||||
|
|
I don't think that there is a strict order of bonder preference; it is based on something else. I did the following experiment: three bonders in a horizontal row, with an unbonded H at each one. I recorded the results of the six combinations of bonders.
I reran this many times, and there was always a 50% split with one group preferring 'L' bonding, one group preferring 'R' bonding, and one group being split. (Each group is identified by the bonder in the middle.) So there is evidently some structure to the evaluation, but each of these six cases is contradicted by another one (if we assume the bonders evaluate in order); i.e., if (a) is the correct order, then why in (b) does the bonder prefer (2,3) over (1,2)? This is true for every case. The mouse wheel trick seems to be doing something (it made a click and I assume processed an action), but I could not change the output of (a). |
||||
|
|
|
The bonders each have a "hidden priority", where they will try the other bonders in a certain order. If it's not doing what you want, you can swap the bonder's position around. Sorry, can't find a good source to cite for this. |
|||||||
|
|
Apparently, if you 'mouse over' the bonder and roll the mouse wheel up/down, the bond order of the bonders changes. It worked for me. |
||||
|
|
