30 votes

Comment un atome décide-t-il à quoi se lier ?

Si l'on prend l'exemple d'un atome d'hydrogène (qui ne peut avoir qu'une seule liaison au maximum), qui se trouve sur un liant à côté de deux autres atomes qui sont également sur des liants et qui ont des emplacements de liaison disponibles, comment détermine-t-on l'atome auquel l'hydrogène finit par se lier ? J'ai essayé d'expérimenter avec un ordre de priorité des directions, mais cela ne semble pas être correct.

22voto

House Points 1139

J'ai bien peur qu'il n'y ait pas de véritable science derrière tout ça. Chaque bonder a un numéro de priorité probablement basé sur la structure interne des données (tableau, liste liée, etc.). Le jeu traite simplement cette liste dans un ordre allant du premier au dernier. Donc l'ordre de liaison dans le jeu est juste la façon dont les bonders sont disposés. Ce serait bien s'ils étaient étiquetés, mais pour autant que je sache, il n'y a aucun moyen d'obtenir leur priorité dans le jeu. Donc avec deux bonders liés, la liste est parcourue séquentiellement. Par exemple, avec 4 bonders, la liste des liens vérifiés ressemblerait à ceci :

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

qui est simplement une liste ordonnée des paires de numéros de priorité. Avec cette connaissance, vous avez juste besoin de savoir quel bonder a quelle priorité. Par l'expérimentation, j'ai trouvé que :

Pour 4 bonders dans un niveau frais, les numéros de priorité de bonders sont :

1 - 2
| . |
4 - 3

Pour un niveau frais avec 8 bonders les numéros de priorité des bonders sont :

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

0 votes

Il n'est pas nécessaire d'avoir des connaissances scientifiques approfondies, mais cela semble prometteur comme réponse définitive. Je l'essaierai ce soir pour vérifier qu'elle correspond à mon expérience.

1 votes

Dans un jeu où il n'est pas nécessaire de se préoccuper de stéréochimie, d'effets d'induction, de cinétique ou de thermodynamique, la science ne joue pas un grand rôle.

0 votes

Excellente réponse, il devrait vraiment y avoir un moyen dans le jeu de déterminer cela en dehors de la mémorisation de la configuration originale.

6voto

rfgamaral Points 910

Je ne pense pas qu'il y ait un ordre strict de préférence de cautionnement ; il est basé sur autre chose.

J'ai fait l'expérience suivante : trois liants dans une rangée horizontale, avec un H non lié à chaque liant. J'ai noté les résultats des six combinaisons de liants.

#    order    result    side
a    1 2 3    H-H H      L
b    3 2 1    H-H H      L
c    2 3 1    H H-H      R
d    1 3 2    H-H H      L
e    3 1 2    H H-H      R
f    2 1 3    H H-H      R

J'ai refait l'exercice plusieurs fois, et il y avait toujours une répartition de 50% avec un groupe préférant la liaison "L", un groupe préférant la liaison "R", et un groupe partagé. (Chaque groupe est identifié par la caution au milieu).

Il y a donc manifestement une certaine structure dans l'évaluation, mais chacun de ces six cas est contredit par un autre (si nous supposons que les collets évaluent dans l'ordre) ; c'est-à-dire que si (a) est l'ordre correct, alors pourquoi dans (b) le collet préfère-t-il (2,3) à (1,2) ? Ceci est vrai pour tous les cas.

L'astuce de la molette de la souris semble faire quelque chose (elle a fait un clic et je suppose qu'elle a traité une action), mais je n'ai pas pu modifier la sortie de (a).

3 votes

Si les priorités 1, 2 et 3 sont respectivement 1, 3 et 2, la réponse de Timbo l'explique.

6voto

lapis Points 169

J'ai utilisé quelques heures de tests. Le résultat est qu'il y a une priorité cachée, mais le bonder ne vérifie que le bonder de droite et de dessous. Cela signifie que s'il y a 4 bonders, la construction se fait de la manière suivante :

2 3 1
4

La première colleuse 1 va vérifier en dessous et à droite de celui-ci et ne trouve rien à coller. Dans un deuxième temps, la soudeuse 2 collera avec les soudeuses 3 et 4. Ensuite, la colleuse 3 collera avec la colleuse 1 et la dernière colleuse 4 ne trouvera rien à coller.

Si un bonder a deux connexions possibles (à droite et en dessous de lui), il se liera d'abord avec le bonder ayant la priorité la plus élevée (numéro inférieur). Cela signifie que le bonder 2 de la deuxième étape se liera d'abord avec 3, puis avec 4.

6voto

D0SBoots Points 1292

Certaines des autres réponses sont fausses, et cela m'ennuie que le reste soit réparti sur plusieurs postes, donc, après une recherche approfondie, voici ma réponse. définitif la liste de la façon dont le collage fonctionne :

  1. Chaque bonder a un numéro de priorité invisible, de 1 à 8. Ce numéro est déterminé par sa position initiale dans le réacteur.
  2. La liaison se déroule avec une boucle externe sur tous les liants et une boucle interne sur tous les liants. Ainsi, s'il y a 4 collets, l'ordre de vérification est (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. Cependant, le collage ne se produit que si la deuxième colle est directement en dessous ou à droite de la première colle. (C'est la raison pour laquelle la liste ci-dessus ne conduit pas au double bonding : Si la disposition est 2-1, alors l'entrée (1,2) dans la liste ci-dessus ne se déclenche pas, puisque 2 (le second bonder) est à la droite du premier bonder. droite de la première caution.
  4. L'ordre du Bonder est no affectée par le passage de la souris sur les bonders, du moins pas dans la dernière version. Oui, il y a un bruit de clic, mais je n'ai pas pu faire changer l'ordre des liens sur ma molécule de test de BO2, quelle que soit la façon dont je bougeais la souris. Ceci est confirmé par le fait que les clics de souris ne sont pas enregistrés dans l'historique d'annulation comme tout le reste.
  5. L'ordre des bonders est différent selon le type de réacteur :

Standard/Capteur

1 3
2 4

Assemblage/Fusion/Nucléaire/Recherche (4)

1 2
3 4

Recherche (2) (Vraisemblablement, ne peut pas vérifier)

1 2

Recherche (8)

1 2
3 4
5 6
7 8

Super-Bonder/Sandbox

5 1 3 7
6 2 4 8

Oui, il existe deux dispositions différentes pour le carré "standard" 2x2, et oui, le Super-Bonder est vraiment très bizarre.


Enfin, voici quelques conseils pratiques sur la façon de déboguer une conception qui ne fonctionne pas :

Disons que vous essayez de fabriquer la molécule HPCO, dans une configuration courbée. Vous faites un carré 2x2 de liants et votre entrée ressemble à ceci :

P=C

H O

Mais quand tu le lies, ça donne ça :

PC
  |
H-O

Compte tenu de la façon dont le bonding fonctionne, nous pouvons en déduire que le bonder inférieur gauche fonctionne avant le bonder supérieur gauche, et que le fait de les intervertir va régler le problème. La priorité relative des deux autres colleuses n'a pas d'importance.

Cependant, si votre sortie défaillante était tournée comme ceci à la place :

H P
| 
O-C

Dans ce cas, la partie inférieure gauche est avant la partie supérieure droite, et vous devez échanger en diagonale. La priorité des deux bonders sur la diagonale opposée n'a pas d'importance. La différence dans les deux exemples vient de la règle selon laquelle les liaisons ne se forment qu'en bas et à droite.

0 votes

Merci pour cette réponse tardive mais plus complète, elle devrait être acceptée. Juste un commentaire - vos étapes (2) et (3) peuvent être reformulées comme il y a une seule boucle sur tous les bonders dans l'ordre de priorité. Pour chaque bonder, il essaie de se lier avec la case de droite et la case du dessous. S'il y a un bonder dans les deux cases, l'ordre de priorité les départage.

0 votes

Remerciements ! Oui, je suis d'accord que ce que vous avez dit est équivalent, et c'est certainement plus court de le dire de cette façon. J'ai présenté l'algorithme comme je l'ai fait parce que c'est la façon la plus précise et la plus logique pour moi ; en particulier, je soupçonne que c'est la façon dont il est codé dans le jeu.

0 votes

En fait, même si je reconnais que votre façon de procéder est plus claire à comprendre, je voudrais espoir que la façon dont c'est codé dans le jeu est ce que j'ai dit. Une double boucle sur toutes les paires de réacteurs serait inefficace, un algorithme O(n^2), alors que le mien est O(n). Un programmeur expérimenté devrait savoir qu'il ne faut pas faire de double boucle alors qu'une simple boucle suffirait.

3voto

johnc Points 12140

Les bonders ont chacun une "priorité cachée", où ils essaieront les autres bonders dans un certain ordre. Si vous n'obtenez pas ce que vous voulez, vous pouvez changer la position de la colleuse.

Désolé, je ne peux pas trouver une bonne source à citer pour ça.

0 votes

Il semble y avoir une sorte d'ordre caché, mais c'est bizarre. J'ai disposé C, H, C sur 3 bonders horizontalement et j'ai essayé de les coller. Pour les 6 combinaisons de ces 3 liants, la moitié a collé C-H C et l'autre moitié a collé C H-C, mais aucun schéma n'est clair du tout.

2 votes

@lilserf Pour autant que je sache, la logique est quelque chose comme "Déterminer ce que l'utilisateur essaie de faire, puis trouver un moyen de faire quelque chose d'autre". :p

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X