Comment puis-je créer un générateur de nombres aléatoires avec Redstone vanilla?

Je travaille sur un jeu pour mon serveur Minecraft qui inclut l'élément de hasard.

L'idée est qu'il y a 6 boutons. L'un d'entre eux (déterminé de manière aléatoire par les circuits de redstone) aboutit à la richesse, aux prix, etc. Les cinq autres résultent en doom.

Lorsque vous entrez dans la pièce, les portes ferment le démarrage du jeu et commencent le circuit principal qui sélectionne lequel des 6 boutons est le bouton gagnant. Comment faire pour faire les circuits, c'est mon problème! J'ai les contrôles de la porte, les circuits de victoire / perte, et le circuit de réinitialisation pour préparer la pièce pour le prochain joueur, tout en fonctionnant, mais je suis perplexe sur la façon de faire redstone faire quelque chose de aléatoire.

Comment puis-je utiliser Redstone pour choisir l'un des 6 boutons actifs, au hasard?

L'une des façons les plus courantes de créer un véritable circuit aléatoire est de créer une horloge très rapide qui parcourt rapidement les sorties possibles, qui s'arrêtera dès qu'une personne appuie sur un bouton. Si le circuit est assez rapide ou caché, le moment précis où ils arrêtent le circuit est suffisamment aléatoire pour servir de nombreuses applications.

Cela peut être implémenté en redstone à l'aide d'un compteur en anneau à 6 états qui est constamment "coché" par un circuit d'horloge, l'horloge étant arrêtée par l'entrée humaine verrouillée (qui, dans ce cas, serait la même que celle du bouton d'ouverture de la porte) , De sorte que, lorsqu'ils appuient sur le bouton, le compteur annulaire arrête de changer et sa sortie devient votre sélection de bouton.

Encore mieux, mais plus compliqué, il faudrait créer une cellule de mémoire qui "capture" l'état du compteur d'anneaux lorsque le bouton d'entrée humaine est poussé et utilise la cellule de mémoire comme données d'activation à la place, de sorte que le compteur d'anneaux n'a jamais eu Être arrêté du cyclisme. Cela rendrait le compteur d'anneaux encore moins prévisible, et rendrait le caractère aléatoire plus élevé.

Les circuits aléatoires peuvent être réalisés en mettant différents éléments dans un distributeur et en lançant un. Après avoir déterminé lequel est distribué, vous pouvez le recharger dans le distributeur.

Avoir 2 pistons collants "se battre" sur un bloc Redstone. 2 pistons face à l'autre avec 3 blocs entre eux, et un bloc Redstone au milieu de l'espace ouvert. Centrez les pistons avec une impulsion en même temps et une fois que l'impulsion se termine, les pistons se rétractent et il y a un 1/2 La chance que l'un ou l'autre obtient le bloc. Mettez la sortie entre le bloc redstone et les pistons et si le piston gauche tire le bloc vers lui, la sortie sera côté gauche.

Vous pouvez également utiliser des géniteurs de porcs pour le rendre aléatoire. Vous pourriez mettre une plaque de pression sous chaque générateur et, chaque fois qu'un porc frappe une plaque de pression, ce serait le bouton qui est bon tandis que le reste serait mauvais jusqu'à ce qu'un autre cochon engendette et frappe une autre plaque de pression.

Si vous ne savez pas comment obtenir des géniteurs de porcs, puisque vous ne pouvez même pas les obtenir en mode créatif, tout ce que vous devez faire est d'utiliser des tricheurs pour les engendrer.

Si vous ne connaissez pas le numéro d'identification des géniteurs de porcs, allez sur ce site: Minecraft ID List . Oh, et en passant, vous devrez mettre de l'herbe à côté des géniteurs, car les porcs ne peuvent engendrer que de l'herbe.

Ma mise en œuvre préférée utilise l'approche Dragnoz ici:

Exécuter @r [type = ArmorStand] ~ ~ 2 ~ setblock redstone_block

Il suffit d'avoir le Redstone sous le support Armor. REMARQUE: si vous avez plus d'un support d'armure, donnez simplement les noms personnalisés aléatoires, puis testez ceci: exécutez @r [type = ArmorStand, CustomName =] ~ ~ 2 ~ setblock ~ ~ -2 ~ redstone_block

Oh, aussi, changez les coordonnées dans n'importe quel endroit de l'armure.