Redstone est un matériau du jeu Minecraft, et il est utilisé pour de nombreux engins complexes. Pour ce programme, vous n'aurez qu'à simuler trois éléments: le fil de redstone (noté avec R), la torche de redstone (noté avec T) et le bloc (noté avec B).
Voici une liste de règles de base sur le fonctionnement de 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'entrée sera donnée dans des tableaux bidimensionnels jusqu'à une taille de 64x64, comme ceci:
TRRR
B
TBRTRR
R
RRRRRRRRR
R
RRRRRR
Il est garanti que l'entrée n'aura aucune "horloge" ou redstone alimentée par une torche pointant vers le bloc sur lequel la torche est allumée. Il n'y aura qu'un seul circuit redstone dans chaque entrée.
Votre programme doit changer chaque caractère en 1 ou en 0, 1 indiquant si cet élément est alimenté / émettant de la puissance, et 0 s'il n'est pas alimenté / n'émettant pas de puissance.
Cette entrée doit avoir cette sortie:
1111
1
100000
1
111111111
1
001111
C'est un code-golf, donc le code le plus court gagne, comme toujours.
111\n0 1\n000
est la sortie; cela semble être conforme aux règles. Je mettrai une restriction d'entrée disant que vous ne pouvez pas avoir de situations comme TRR B R RRR
, où il clignote à plusieurs reprises.
"TRR\nB B\nRRT"
?