En el juego 2048, tienes una cuadrícula y puedes mover los elementos en cuatro direcciones. Todos se mueven en esa dirección lo más lejos que pueden. Para este desafío, se le dará una cadena 2D cuadrada y acolchada (ya sea con nuevas líneas o una lista de cadenas), de esta manera:
ab cd e 
 f ghij 
      kl
mno p   
 q r st 
u      v
 w x  y 
z       
o
['ab cd e ', ' f ghij ', '      kl', 'mno p   ', ' q r st ', 'u      v', ' w x  y ', 'z       ']
Las cuatro operaciones son left, right, up, y down. El resultado de cada uno en la entrada anterior:
Izquierda:
abcde   
fghij   
kl      
mnop    
qrst    
uv      
wxy     
z       
o
['abcde   ', 'fghij   ', 'kl      ', 'mnop    ', 'qrst    ', 'uv      ', 'wxy     ', 'z       ']
Derecho:
   abcde
   fghij
      kl
    mnop
    qrst
      uv
     wxy
       z
o
['   abcde', '   fghij', '      kl', '    mnop', '    qrst', '      uv', '     wxy', '       z']
Arriba:
abocdiel
mf ghsjv
un rp k 
zq x  t 
 w    y 
        
o
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x  t ', ' w    y ', '        ', '        ', '        ']
Abajo:
        
 b    e 
af c  j 
mn gd k 
uq rhitl
zwoxpsyv
o
['        ', '        ', '        ', ' b    e ', 'af c  j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
Su objetivo es rotar qué operación se realiza en cada iteración, realizándolas en los ntiempos de entrada . Entonces, si su orden es URDL, y la entrada dice que comience con D( 2, indexado a 0), y necesita 5operaciones, realice D-L-U-R-D, luego imprima.
Entrada:
- Una cadena en un formato como el anterior
- No se requieren espacios finales (pero probablemente sean útiles)
 - Será al menos 2x2
 - Solo contendrá ASCII y espacios imprimibles (y nuevas líneas según su formato de entrada)
 - Teóricamente deberías admitir cualquier longitud, pero las restricciones de memoria están bien
 
 - Un entero no negativo 
npara el número de operaciones que se realizarán. - Un entero 
0-3o1-4una letra queUDLRdescribe la operación para comenzar.- Por lo tanto, su programa debe poder comenzar o finalizar con cualquier operación
 - Puede definirlos en cualquier orden para fines de inicio, pero debe ser un orden coherente, por 
Ulo que a veces no puede seguirRy también a veces seguirL. 
 - Las operaciones deben realizarse de manera no trivial
- Puede realizar operaciones en el orden 
LDRU(izquierda, abajo, derecha, arriba) repetidamente, pero noDLRUoUDLR(porqueUDes lo mismo queD, yLRes lo mismo que hacerR). 
 - Puede realizar operaciones en el orden 
 
Salida:
- La cadena después de realizar las cuatro operaciones 
nveces - El formato de salida debe ser el mismo que el formato de entrada.
 - No se requieren espacios finales (pero probablemente sean útiles)
 
Ejemplo:
Este ejemplo usa el orden URDL.
Entrada:
10  (number of times operations are applied)
0   (starts with Up)
ab cd e 
 f ghij 
      kl
mno p   
 q r st 
u      v
 w x  y 
z       
Salidas para n = 0-5: (solo imprima el resultado final)
ab cd e 
 f ghij 
      kl
mno p   
 q r st 
u      v
 w x  y 
z       
---------------
abocdiel
mf ghsjv
un rp k 
zq x  t 
 w    y 
---------------
abocdiel
 mfghsjv
   unrpk
    zqxt
      wy
---------------
      el
    dijv
   chspk
 bognrxt
amfuzqwy
---------------
el      
dijv    
chspk   
bognrxt 
amfuzqwy
---------------
eljvkxty
disprqw 
chgnz   
bofu    
am      
        
Mi implementación bonita y sin golf

Respuestas:
Jalea , 23 bytes
Pruébalo en línea!
Estoy un poco insatisfecho, pero MATL necesitaba algo de competencia. :PAG
Utiliza el pedido
URDL. Entradas:U, 2 =R, 3 =D, 4 =L)Explicación
fuente
JavaScript (ES6), 168 bytes
Sin golf:
des el índice inicial en las direcciones que sonURDL.fuente
Python 2 ,
226224204193 bytes-1 byte gracias a Trelzevir
Pruébalo en línea!
Función que elimina todos los espacios de cada elemento en la lista y completa con espacios a la izquierda o derecha.
Esto para transponer (rotar 90º) cuando la entrada es
0o1(UoD) y aplicargfuente
for i in (...).MATL ,
2423 bytesPedido sea
URDL,1basados en. Entonces1es Ù,2isR` etc.Las entradas son: número de veces, dirección inicial, matriz de caracteres (usando
;como separador de filas).Pruébalo en línea!
fuente