Comment puis-je alimenter au hasard un de plusieurs fils dans Minecraft?

Compte tenu de 5 fils (peut-être plus), je souhaite appuyer sur un bouton de réinitialisation et avoir exactement l' un de ces fils, sélectionnés au hasard, devenir actif – et rester ainsi (jusqu'à ce que le bouton suivant appuie sur). Quelle est la façon simple de faire cela?

Ce Q / A est en fait lié à une autre Question , ma réponse à laquelle était suffisamment complexe (et avait tellement de diagrammes), que j'ai décidé qu'il valait un poste distinct.

Maintenant, il y a beaucoup de générateurs de nombres aléatoires là-bas, certains très intelligents (l'un utilise un registre à décalage linéaire à 13 bits – wow). Mais je voulais quelque chose de simple, extensible et facile à comprendre. Il y a peut-être probablement plus de chances 🙂 Mais je pense que celui-ci fonctionne assez bien pour être utilisé dans le circuit de l'autre Question.

Il s'agit essentiellement d'une 5 heures (utilisant les nouveaux répéteurs – j'adore ceux), connecté à des bascules de mémoire, avec un bouton de réinitialisation.

Diagramme de circuit de haut niveau

Schéma de circuit de haut niveau

Schéma de circuit à 5 horloges

Schéma de circuit à 5 horloges

Les flèches sont des répéteurs, soit 0,3 ou 0,2 seconde de retard (ou aucune si vide). Le 0,2 est de compenser la longueur du fil devant lui, ce qui ajoute un certain retard. Le temps de cycle complet de l'horloge est d'environ 1,5 seconde.

333 diagramme de circuit

333 diagramme de circuit

Comment l'utiliser

  • Effacez le 5-horloge (les répéteurs sont gelés), sur le redémarrage du serveur / le rechargement du jeu. Cela peut généralement se faire en déposant / enlever une torche par le circuit, et / ou en enlevant et en remplaçant une section de fil. Lorsque tous les répéteurs ne sont pas alimentés , le circuit est clair.

  • Injecter une impulsion dans les 5 heures. Appuyez sur le bouton de l'Injecteur Auto-Pulse, et il démarrera l'horloge.

  • Appuyez sur le bouton Réinitialiser – exactement l' un des cinq fils, sera maintenant actif. Si les fils étaient précédemment actifs, ils s'éteignent.

L'horloge passe à travers 5 torches en environ 1,5 seconde, et lorsque vous appuyez sur le bouton Réinitialiser, quel que soit le fil à côté d'une torche active, sera verrouillé dans un état actif.

À ce stade, quelqu'un se plaignait sans doute, "vous appelez ça au hasard " ??? 🙂 Pourquoi, oui, je le fais – sauf si vous marchez vers le bouton à des intervalles de temps déterministes, c'est très aléatoire. Certaines personnes ont conçu des RNG qui utilisent des mobs qui se promènent – j'utilise le joueur. 🙂

Cependant, si vous souhaitez ajouter plus de caractère aléatoire, utilisez le circuit TBD – essentiellement, cela signifie que vous: accédez au bouton, regardez le chiffre Seconds de votre montre-bracelet, et lorsque vous appuyez sur zéro, appuyez sur le bouton. Cela donnera une plage de 1 à 10 secondes, en moyenne 5, dans laquelle l'horloge se déroulera, ce qui entraînera un fil imprévisible activé.

Je me rends compte qu'il existe d'autres façons d'obtenir un événement aléatoire. En fait, j'avais créé à l'origine un pulsar rapide qui a brûlé, puis remonter en environ 5-15 secondes. Je travaillais pour que l'événement de relight déclenche un flip-flop JK, en envoyant une impulsion à l'horloge. Mais c'était un) plus délicat que ce que je pensais, et je voulais obtenir une réponse posté 🙂 et b) un peu redondant. Tout ce que j'essayais de faire était d'attendre un intervalle aléatoire avant de choisir une torche d'horloge – et il est assez facile pour le joueur de regarder sa montre pour un intervalle aléatoire. 🙂

Parfois, la meilleure solution, ne requiert pas beaucoup de machines complexes. 🙂

En outre, cette conception est pour une application spécifique – dans la Question originale, la personne voulait un bouton de réinitialisation qui a changé le fil, ce qui signifie qu'ils choisissaient activement pour obtenir un nombre aléatoire. Si votre application implique des lumières de discothèque clignotant au hasard, alors non, cela ne fonctionnerait pas pour cela. Mais il existe déjà de nombreuses solutions pour éclairer les lumières au hasard.

Le circuit 333 est assez banal, je ne revendique aucune originalité – la seule raison pour laquelle je lui ai donné un nom, est-ce que je devais lui donner un certain label sur le diagramme pour plus de clarté. 🙂

Mise à jour: Bien que je n'utilisais à l'origine qu'un injecteur d'impulsions activé manuellement, il fallait que le lecteur bascule rapidement ou éteint le commutateur. Juste pour le plaisir, j'ai décidé d'ajouter un injecteur automatique d'impulsion pour simplifier l'activation de l'horloge. (La conception pour laquelle provient le Wiki ).

Avec la mise à jour 1.5 avec trémies et comparateurs, vous pouvez faire un distributeur face vers le haut dans une trémie orientée vers le bas et un comparateur sur la trémie (à côté de celle-ci), puis placer tout élément qui peut empiler et un élément qui ne peut pas empiler dans le Distributeur, puis allumez le distributeur, un objet aléatoire entrera dans la trémie. Si c'est un élément non empilant, il donnera une intensité de signal de 2 si c'est un élément empilable, il donnera un signal de 1.