Redstone è un materiale nel gioco Minecraft ed è usato per molti aggeggi complessi. Per questo programma, dovrai solo simulare tre elementi: il filo di pietra rossa (indicato con R), la torcia di pietra rossa (indicato con T) e il blocco (indicato con B).
Ecco un elenco di regole di base sul funzionamento di Redstone:
A redstone torch sends power to any adjacent redstone wire.
TRRRR
^This redstone wire is powered.
Redstone wire can only hold power for 15 blocks.
TRRRRRRRRRRRRRRRR
^This last wire is unpowered, because the torch is >15 blocks away.
A block is said to be powered if a powered redstone wire is found adjacent to it.
TRRRB
^This block is powered.
If a block next to a redstone torch is powered, then the torch stops emitting power.
T
R
R
R
B <This block is powered.
T <This redstone torch does not emit power because of the block next to it.
R <This redstone is unpowered because the torch is not providing power.
R
L'input verrà fornito in array bidimensionali fino a una dimensione di 64x64, in questo modo:
TRRR
B
TBRTRR
R
RRRRRRRRR
R
RRRRRR
È garantito che l'ingresso non avrà "orologi" o pietra rossa alimentata da una torcia che punta al blocco su cui è accesa la torcia. Ci sarà un solo circuito di pietra rossa in ogni ingresso.
Il tuo programma deve cambiare ogni carattere in 1 o 0, 1 indicando se questo oggetto è alimentato / emette potenza e uno 0 se è non alimentato / non emette potenza.
Questo input dovrebbe avere questo output:
1111
1
100000
1
111111111
1
001111
Questo è un code-golf, quindi vince il codice più corto, come sempre.
111\n0 1\n000
è l'output; sembra essere solido entro le regole. Metterò una limitazione di input dicendo che non puoi avere situazioni come TRR B R RRR
, in cui lampeggia ripetutamente.
"TRR\nB B\nRRT"
?