Résolu Porte à codes avec boutons MAIS, un même bouton doit être pressé deux fois.

Doc_Hinault

Aventurier
13 Mai 2020
3
0
1
24
Bonjour bonjour,

Après plusieurs heures de recherche intense, j'en suis venu à la conclusion que j'avais besoin d'aide, et aucun tutoriel ne m'a préparé à cette situation étant la réalisation d'une porte à codes, mais avec l'un des codes revenant plusieurs fois.

Ici, la "surface" d'entrée est la suivante :
Codes.png


Et le code est le suivant : "14.9.9.12.7.3.14"

Si l'un de vous pourrez m'aider à réaliser le mécanisme correspondant, je lui en serais éternellement reconnaissant !

Bien à vous,

Doc_Hinault
 

[GISED] Link

Torches, poudre et repeaters. What else ?
4 Mars 2012
341
76
140
29
VNSA, 2740 Moutier
vnsa.ch
Plop.

Alors il m'aura fallu plus de temps que prévu ... ça fait un moment que j'ai plus fait de redstone et en plus sans world edit c'est TRES chiant...

Donc la voili la voulou, la porte à code comme demandé :

wCLAo8r.png

3CcVmJp.png

6Zi2avB.png

kg7OQRI.png

xRCmvbK.png

gFF2w5L.png


la map ici :

Comment elle marche ta bestiôle ??

hnbHdxx.png


Important à comprendre:
  • La saisie est séquencé par un registre à décallage
  • Le code est programmable à l'aide de torches de redstones sur les blocs bruns. Attention, les chiffre paire sont en haut et les impaires en bas
  • Le code n'est contrôlé que durant 3 ticks (0.3 secondes).
  • Si le mauvais bouton est pressé, celà reset le registre à décalage
  • Le reset du registre à décalage est prioritaire sur l'entrée +1

Tous les boutons envoie un signal sur un fil qui permet de détecter lorsqu'un d'entre eux est pressé. Ce fil est connecté sur une bascule monostable (un pulseur). La pulse générée se dirige :
  1. L'entrée +1 du registre à décalage. Ce qui incrémente le registre à décalage.
  2. Le sélecteur de code pour choisir le bouton à comparer
Le signal qui représente le bouton à tester est particulier. En effet j'utilise la puissance du signal pour choisir une torche dans la ligne. Petit dessin:
Code:
 ↓↓↓↓↓↓↓↓↓↓     répéteur
┌──────────┐
│          │
│          │    redstone en cercle
│          │
└──────────┘   
 !!!!!!!!!!     torches
Le signal va partir dans les 2 sens, mais ne va pas réussir à ce rejoindre de l'autre côté. En effet, le circuit de redstone fait exactement 30 blocs. Du coup, lorsqu'un répéteur est allumé, on a ça :
Code:
                [ ↓] répéteur
[11][12][13][14][15][14][13][12][11][10][ 9][ 8]
[10]                                        [ 7]
[ 9]                                        [ 6]                                       
[ 8]                                        [ 5]
[ 7][ 6][ 5][ 4][ 3][ 2][ 1][ 0][ 1][ 2][ 3][ 4]
                            [ !] torche allumé

Chaque numéro représente la puissance du signal au bloc donné. Seul la torche positionnée là où il n'y a pas de signal s'allume.

Et si on appuie sur le bouton où la torche est allumée, le signal reset ne sera pas donnée au registre à décalage et on pourra alors continuer de composer le chiffre. Une fois que le registre à décallage est à la dernière mémoire, celui-ci active le signal de code réussi. Ce signal empêche le contrôle de nouvelle saisie et maintient la porte ouverte. Le seul moyen de reset le code sera alors d'aller sur la plaque de pressions de l'autre côté de la porte.
 
Dernière édition:

Spirit

Méfie-toi.
2 Mars 2014
10 309
3 049
348
25
Sinon plus simple tu fais une chaîne de hoopers avec des positions bloquées en 1, 2, 3... et n et ça te donne l’ordre, t’as juste à envoyer un pulse pour déverrouiller chacun selon la séquence du code.

J’avais fait un code modulable comme ça en solo, et ensuite avec un pote (surtout lui ahah) on a refait le système en bien plus compact en utilisant des items dans des hoopers : t’as n lignes de hooper pour un code à n chiffre, lignes de longueur L hoopers avant un comparateur (si ton code comporte L chiffres parmi les n existants).

Pour chaque ligne un item est à une position initiale < L (strictement). Quand t’appuies sur un bouton, ça décale tout le monde et ça fait une porte ET entre le bouton et la ligne correspondante : si l’item était en position L-1 et qu’il arrive en L il est détecté -> Porte ET -> incrémentation d’un compteur jusqu’à L (4 si ton code c’est 4269, 8 si c’est 36165939 par exemple).

Une fois ce compteur à 4 tu le reset et t’actives ton système en sortie. Normalement toutes les lignes se reset elles-mêmes car à chaque fois que l’item dépasse L il arrive dans un dropper qui réinjecté dans la boucle L.

Et pour changer le code tu déverrouilles toutes les lignes puis t’appuies sur les boutons pour décaler chaque ligne et programmer ton code en décalant les items dans les boucles !
 

Doc_Hinault

Aventurier
13 Mai 2020
3
0
1
24
Wow, merci à vous deux ! Je m'attendais pas à des explications aussi clair là-dessus ^^

J'avais absolument pas vu vos messages donc j'avais opté pour un système de dropper avec un code sans utilisation double, le désavantage étant que si les joueurs du serveur s'acharnent trop sur les boutons et avec les lags serv, ben la porte s'ouvre car n'a pas le temps de tout réinitialiser.

Du coup j'ai juste rajouté des répéteurs et ça fonctionne du feu de Dieu... mais c'est clairement pas opti mdr (même si bon ça fonctionne).

En soit la machine marche ainsi :

"Entrée du code -> Si mauvais ordre ou mauvaise entrée -> reset
-> Si bon code, ouverture
-> Clock basique avec des pistons collants et comparateurs hopper, pour reset toutes les 17 secondes"

Ca reste très simple, mais je vais tester vos deux systèmes voir celui laguant le moins et sans risque de usebug lag ^^

Merci à vous en tout cas ! Ca fait plaisir de voir des gens aussi réactifs :)

(la bestiole utilisant un code sans double entrée :)
1589791824772.png
1589791825466.png

1589791863028.png

1589791890033.png