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
Réponses:
Gelée , 23 octets
Essayez-le en ligne!
Je suis un peu insatisfait, mais MATL avait besoin de compétition. : P
Utilise la commande
URDL
. Contributions:U
, 2 =R
, 3 =D
, 4 =L
)Explication
la source
JavaScript (ES6), 168 octets
Non golfé:
d
est l'indice initial dans les directions qui le sontURDL
.la source
Python 2 ,
226224204193 octets-1 octet grâce à Trelzevir
Essayez-le en ligne!
Fonction qui supprime tous les espaces de chaque élément de la liste et complète avec des espaces à gauche ou à droite.
Ceci pour transposer (tourner à 90º) lorsque l'entrée est
0
ou1
(U
ouD
) et appliquerg
la source
for i in (...)
.MATL ,
2423 octetsCommande
URDL
,1
-Basé.1
Est donc Ù,
2is
R`, etc.Les entrées sont: nombre de fois, direction initiale, matrice de caractères (en utilisant
;
comme séparateur de lignes).Essayez-le en ligne!
la source