Dans le jeu 2048, vous avez une grille et vous pouvez déplacer les éléments dans quatre directions. Ils vont tous dans cette direction autant qu'ils le peuvent. Pour ce défi, vous recevrez une chaîne 2D carrée rembourrée (avec des nouvelles lignes ou une liste de chaînes), comme suit:
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
ou
['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z ']
Les quatre opérations sont left
, right
, up
et down
. Le résultat de chacun sur l'entrée ci-dessus:
La gauche:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
ou
['abcde ', 'fghij ', 'kl ', 'mnop ', 'qrst ', 'uv ', 'wxy ', 'z ']
Droite:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
ou
[' abcde', ' fghij', ' kl', ' mnop', ' qrst', ' uv', ' wxy', ' z']
Vers le haut:
abocdiel
mf ghsjv
un rp k
zq x t
w y
ou
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x t ', ' w y ', ' ', ' ', ' ']
Vers le bas:
b e
af c j
mn gd k
uq rhitl
zwoxpsyv
ou
[' ', ' ', ' ', ' b e ', 'af c j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
Votre objectif est de faire pivoter quelle opération est effectuée à chaque itération, en les exécutant sur les n
temps d' entrée . Donc, si votre commande est URDL
, et l'entrée indique de commencer par D
( 2
, indexé 0), et si vous avez besoin d' 5
opérations, vous effectuez D-L-U-R-D
, puis imprimez.
Contribution:
- Une chaîne dans un format comme ci-dessus
- Les espaces de fin ne sont pas nécessaires (mais ils sont probablement utiles)
- Ce sera au moins 2x2
- Contiendra uniquement de l'ASCII imprimable et des espaces (et des retours à la ligne selon votre format d'entrée)
- Vous devriez théoriquement prendre en charge n'importe quelle longueur, mais les contraintes de mémoire sont correctes
- Un entier non négatif,,
n
pour le nombre d'opérations qui seront effectuées - Un entier
0-3
ou1-4
, ou une lettreUDLR
, décrivant l'opération pour commencer.- Votre programme doit donc pouvoir démarrer ou se terminer avec n'importe quelle opération
- Vous pouvez les définir dans n'importe quel ordre à des fins de démarrage, mais ce doit être un ordre cohérent, donc
U
ne peut pas parfois suivreR
et parfois aussi suivreL
.
- Les opérations doivent être effectuées de manière non triviale
- Vous pouvez effectuer des opérations dans l'ordre
LDRU
(gauche, bas, droite, haut) à plusieurs reprises, mais pasDLRU
ouUDLR
(carUD
c'est la même chose queD
, etLR
c'est la même chose que faireR
.)
- Vous pouvez effectuer des opérations dans l'ordre
Production:
- La chaîne après avoir effectué les quatre opérations
n
fois - Le format de sortie doit être le même que votre format d'entrée
- Les espaces de fin ne sont pas nécessaires (mais ils sont probablement utiles)
Exemple:
Cet exemple utilise la commande URDL
.
Contribution:
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
Sorties pour n = 0-5: (il suffit d'imprimer le résultat 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
Ma jolie implémentation non golfée