Wie beschließt ein Atom, was zu verbinden?

Angesichts des Beispiels ist ein Wasserstoffatom (das nur 1 Bindung maximal haben kann), das auf einem Bonder neben zwei anderen Atomen sitzt, die auch auf Bonder sind und verfügbare Bindungsschlitze haben, wie wird bestimmt, welches Atom der Wasserstoff am Bonding ist nach? Ich habe versucht, mit ihm zu experimentieren, da es eine Prioritätsreihenfolge von Richtungen ist, aber das scheint nicht richtig zu sein.

Ich fürchte, es gibt keine wirkliche Wissenschaft dahinter. Jeder Bonder hat eine Prioritätszahl wahrscheinlich auf der Grundlage der internen Datenstruktur (Array, verknüpfte Liste, was auch immer). Das Spiel verarbeitet diese Liste in einer ersten bis letzten Bestellung. So ist die Bonding Order im Spiel genau so, wie die Bonders passieren. Ich wäre nett wenn sie beschriftet wurden, aber soweit ich weiß, gibt es keine Möglichkeit, ihre Priorität im Spiel zu bekommen. Also mit zwei Bonders verknüpft, geht es einfach durch die Liste nacheinander. Zum Beispiel würde bei 4 Bonders die Liste der markierten Links so aussehen:

  1. (1, 2)
  2. (1, 3)
  3. (1, 4)
  4. (2, 3)
  5. (2, 4)
  6. (3, 4)

Das ist einfach eine geordnete Liste der Paare von Prioritätsnummern. Mit diesem Wissen musst du nur wissen, welcher Bonder welche Priorität hat. Obwohl ich experimentiert habe, habe ich das gefunden:

Für 4 Bonder in einer frischen Ebene sind die Bonder-Prioritätsnummern:

1 - 2 | . | 4 - 3 

Für ein frisches Level mit 8 Bonders sind die Bonder-Prioritätsnummern:

 1 - 2 | . | 4 - 3 | . | 5 - 6 | . | 8 - 7 

Ich glaube nicht, dass es eine strenge Ordnung der Bonderpräferenz gibt; Es basiert auf etwas anderem

Ich habe das folgende Experiment gemacht: drei Bonder in einer horizontalen Reihe, mit einem ungebundenen H an jedem. Ich habe die Ergebnisse der sechs Kombinationen von Bonders aufgezeichnet.

 # order result side a 1 2 3 HH HL b 3 2 1 HH HL c 2 3 1 H HH R d 1 3 2 HH HL e 3 1 2 H HH R f 2 1 3 H HH R 

Ich habe das schon oft wiederholt, und es gab immer eine 50% -ige Aufteilung mit einer Gruppe, die "L" -Bindung vorgibt, wobei eine Gruppe "R" -Bindung bevorzugt und eine Gruppe gespalten wird. (Jede Gruppe wird durch den Bonder in der Mitte identifiziert.)

Es gibt also offensichtlich eine gewisse Struktur für die Auswertung, aber jeder dieser sechs Fälle widerspricht einem anderen (wenn wir davon ausgehen, dass die Bonder in der Reihenfolge auswerten); Dh wenn (a) die richtige Reihenfolge ist, warum dann in (b) der Bonder bevorzugt (2,3) über (1,2)? Das gilt für jeden Fall.

Der Mausrad-Trick scheint etwas zu tun (es hat einen Klick gemacht und ich nehme eine Bearbeitung ab), aber ich konnte die Ausgabe von (a) nicht ändern.

Ich habe ein paar Stunden getestet. Das Ergebnis ist, dass es eine versteckte Priorität gibt, aber der Bonder prüft nur den Bonder rechts und darunter. Das heißt, wenn es 4 Bonders gibt, wie folgt:

 2 3 1 4 

Der erste Bonder 1 wird unten und rechts davon prüfen und kann nichts finden. Der zweite Schritt ist, dass Bonder 2 mit Bonder 3 und 4 bindet. Danach Bonder 3 Bonds mit 1 und letzten Bonder 4 findet nichts zu Bindung.

Wenn ein Bonder zwei mögliche Verbindungen hat (rechts und darunter), dann wird er sich zuerst mit dem Bonder mit der höheren Priorität (untere Zahl) verbinden. Das bedeutet, dass der zweite Schritt Bonder 2 zuerst mit 3 und dann mit 4 verbunden wird.

Die Bonder haben jeweils eine "versteckte Priorität", wo sie die anderen Bonder in einer bestimmten Reihenfolge ausprobieren werden. Wenn es nicht tut was du willst, kannst du die Position des Bonders umtauschen.

Entschuldigung, kann hier keine gute Quelle finden.

Einige der anderen Antworten sind falsch, und es macht mir, dass der Rest ist über mehrere Beiträge aufgeteilt, so auf gründliche Forschung hier ist meine endgültige Liste, wie Bonding funktioniert:

  1. Jeder Bonder hat eine unsichtbare Prioritätsnummer, 1-8. Diese Zahl wird durch ihre Ausgangsposition im Reaktor bestimmt.
  2. Bonding geht mit einer äußeren Schleife über alle Bonder und eine innere Schleife über alle Bonders. Also, wenn es 4 Bonder gibt, ist die Reihenfolge, die sie überprüft, (1,1), (1,2), (1,3), (1,4), (2,1), (2,2), (2 , 3), (2,4), (3,1), (3,2), (3,3), (3,4), (4,1), (4,2), (4,3 ), (4,4).
  3. Die Bindung erfolgt jedoch nur, wenn der zweite Bonder direkt unterhalb oder rechts vom ersten Bonder liegt. (Kredit zu Timbo, um dies herauszufinden.) Dies ist der Grund, warum die obige Liste nicht zu Doppel-Bindung führt: Wenn das Layout 2-1 ist, dann wird der Eintrag (1,2) in der obigen Liste nicht ausgelöst, Da 2 (der zweite bonder) rechts vom ersten bonder ist
  4. Bonder Order ist nicht von Maus-Wheeling auf den Bonder betroffen, zumindest nicht in der neuesten Version. Ja, es macht einen Klick, aber ich konnte nicht die Bond-Bestellung auf meinem Test-Molekül von BO2 ändern, egal wie ich Maus-Rädern. Dies wird durch die Tatsache unterstützt, dass Maus-Rad-Klicks nicht im Rückgängig-History gespeichert werden, wie alles andere.
  5. Der Bonderauftrag ist für verschiedene Reaktortypen unterschiedlich:

Standard / Sensor

 1 3 2 4 

Montage / Fusion / Nuklear / Forschung (4)

 1 2 3 4 

Forschung (2) (vermutlich kann nicht überprüft werden)

 1 2 

Forschung (8)

 1 2 3 4 5 6 7 8 

Super-Bonder / Sandbox

 5 1 3 7 6 2 4 8 

Ja, es gibt zwei verschiedene Layouts für das "Standard" 2×2 Quadrat, und ja, das Super-Bonder ist wirklich so seltsam.


Schließlich sind hier einige praktische Tipps für das Debuggen eines balky Design:

Nehmen wir an, du versuchst, das Molekül HP≡CO in einer gebogenen Konfiguration zu machen. Sie machen ein 2×2 Quadrat von Bonder und Ihre Eingabe sieht so aus:

 P=C HO 

Aber wenn du es bindest, kommt es so heraus:

 P≡C | HO 

Angesichts der Art und Weise, wie das Bonding funktioniert, können wir ableiten, dass der untere linke Bonder vor dem oberen linken Bonder läuft, also tauschen sie ihn aus. Die relative Priorität der beiden anderen Bonder spielt keine Rolle.

Allerdings, wenn Ihre fehlerhafte Ausgabe wie folgt gedreht wurde:

 HP | ⦀ OC 

In diesem Fall ist die untere linke vor der oberen rechts, und du musst schräg tauschen. Die Priorität der beiden Bonder auf der gegenüberliegenden Diagonale spielt keine Rolle. Der Unterschied in den beiden Beispielen ergibt sich aus der Regel, dass sich die Bindungen nur nach unten und rechts bilden.

Anscheinend, wenn du dich über den Bonder ziehst und das Mausrad nach oben / unten rolle, ändert sich die Bondreihenfolge der Bonders. Es hat für mich gearbeitet