Il forum è in modalità sola lettura dal 16 giugno 2019, ora siamo su Discord. Altre informazioni

[Release] Vere e proprie Memorie con la Redstone

Oggi vi mostrerò come creare delle vere e proprie celle di memoria utilizzando solamente la redstone survival.

Queste celle potranno essere modificate a nostro piacimento utilizzando soltanto un filo di redstone!
Potremo decidere quale cella modificare e quale dato inserirci dentro, oppure resettarne una specifica.

Tutto questo grazie all'unione delle due caratteristiche di un segnale di redstone: potenza e lunghezza.

Come ho già fatto vedere in un altro post il segnale può essere diviso in base alla lunghezza sottraendo progressivamente un tick dal segnale.
Ora facciamo un passo avanti e cerchiamo di incorporare pure la potenza grazie ai comparatori.
Quindi bisognerà far passare il segnale riducendolo senza cambiare la sua potenza.

Su youtube ho trovato un bel design per ridurre di un tick il segnale trasportato dai comparator:
[Immagine: VXZ2ur8.png]
La torcia sottrae un tick ogni volta che passa un segnale.
L'unica pecca è che è direzionale e quindi funzionerà affidabilmente solo nelle direzioni WEST-EAST o viceversa.


Vi mostro il circuito di ricezione:
[Immagine: tTrz3bE.png]
Può sembrare molto complicato... è in effetti lo è :], qua sotto cercherò di spiegarvi al meglio come funziona.
Ora...siccome stiamo lavorando con dei comparatori il segnale non può più essere ridotto ad un tick ma al minimo 2. Quindi dobbiamo distinguere quest'ultimi segnali da quelli di durata maggiore e ciò non è affatto semplice...
L'unica idea fattibile che mi è venuta in mente è stata quella di vedere se il segnale passasse alla cella successiva, se non ci riusciva andava diretto nella propria cella di appartenenza altrimenti, se fosse passato oltre anche dopo la diminuzione di un tick, questo nuovo segnale sarebbe andato a bloccare quello vecchio; ed è per questo che ho messo ben 3 comparator tutti di fila.
Una volta trovata la cella di appartenenza il segnale andava a resettare il valore che c'era dentro e lo sostituiva col nuovo. Ho aggiunto pure l'opzione di reset nel caso il segnale abbia potenza 15 (è la parte coi blocchi di redstone).

Ricapitolando:

  1. Mandiamo un segnale di una certa durata con una certa potenza
  2. questo segnale viene ridotto di un tick finché non trova la cella giusta
  3. Trovata la cella la resetta e impone il nuovo valore
  4. Se il valore imposto è 15 la cella viene resettata del tutto
Ed ecco qua il circuito nella sua interezza:
[Immagine: xAbAnML.png]

Passiamo ora alla fase inziale del circuito ovvero quella dove viene deciso che tipo di segnale mandare.
Dobbiamo avere un circuito che decide quale potenza dare al segnale:
[Immagine: CgUyIT6.png]
Molto semplicemente è una linea di redstone dietro alle leve che finisce in un comparator.

E dobbiamo vere pure un circuito che decide la lunghezza del segnale:[Immagine: w4aAm3X.png]
Questo circuito l'ho già illustrato in questa discussione.

Ora arriva una parte molto interessante ovvero unire le due cose di cui ho parlato sopra:
[Immagine: BuUM6Fq.png]
Questa conformazione con i 2 comparator e un terzo che blocca il primo è fondamentale per la riuscita del corretto invio del segnale.
Il primo comparatore (quello bloccato) deve essere per forza seguito da un altro, altrimenti si avrà una perdita di tick dovuta a certi bug della redstone.
Il primo comparatore deve essere bloccato esattamente da un altro comparator e non da un repeater sempre a causa di questi bug.

Io nella dimostrazione ho messo attaccati i due circuiti di spedizione e ricezione del segnale ma lo potete allungare quanto volete dopo il secondo comparator mostrato nella figura sopra, sempre tenendo conto di non modificare la potenza e la lunghezza del segnale. Ormai esistono pure gli instant comparator che permettono di trasportare istantaneamente pure i segnali dei comparatori quindi non c'è più un problema di lunghe attese.

Ricapitolando di nuovo:

  1. Possiamo scegliere una cella specifica.
  2. immettere un certo valore che se poi diviso con un decodificatore di potenza di segnale può svolgere 14 differenti operazioni in quella cella.
  3. Decidere di cambiare il valore di una cella oppure resettarla.
Con questa ultimo circuito mi sa che chiudo con l'argomento del trasporto di più segnali su un unico filo per il semplice fatto che è difficile far meglio di così (forse giusto col serial signal ma non ho voglia di sperimentare con quelli) e mi è venuto un po' a noia quest'argomento x).
[Immagine: Daxter_by_MelonPiranha1.gif~c200]
Discussioni simili
Risposta di SamosTheSage
15/06/2019, 18:24
Risposta di SamosTheSage
05/01/2019, 22:00
Risposta di SamosTheSage
20/11/2018, 01:49
Risposta di Xraffaele9004X
18/11/2018, 14:56

Utente(i) che stanno guardando questa discussione: 1 Ospite(i)