La somme manuelle des faces d'un cube Cubically est fastidieuse et prend du temps, comme l'écriture de code dans Cubically lui-même.
Dans Cubifier le plus efficace , je vous ai demandé de traduire ASCII en source cubique. L'une des réponses utilise une séquence d'initialisation de cube, puis modifie le cube résultant en fonction des sommes du cube pré-initialisé. Depuis, cette méthode a été utilisée dans de nombreux programmes liés à Cubic. Lors du test d'une nouvelle séquence d'initialisation, il faut additionner toutes les valeurs sur toutes les faces, ce qui prend généralement deux ou trois minutes.
Votre tâche est d'automatiser ce processus pour nous!
Vous prendrez deux entrées, un entier n
et une chaîne c
. Ceux-ci peuvent être lus à partir des arguments de ligne de commande, des arguments de fonction, de l'entrée standard, d'un fichier ou de toute combinaison de ceux-ci. c
sera un cube de mémoire cubique de la taille n
comme joliment imprimé par l'interpréteur.
L'interpréteur Cubically transfère son cube vers STDERR à la fin du programme, formaté correctement pour une visualisation simple. Exécutez un programme vide dans l' interpréteur Cubically et ouvrez la section de débogage pour voir le vidage de cube d'un cube initialisé. Ajoutez un argument 4
pour voir un 4x4x4, ou 5
pour voir un 5x5x5, etc.
Si n
est 3, c
suivra ce format (les entiers seront variables):
000
000
000
111222333444
111222333444
111222333444
555
555
555
Espaces, nouvelles lignes et tout. Si n
est 4, c
ressemblera à ceci (également avec des entiers variables):
0000
0000
0000
0000
1111222233334444
1111222233334444
1111222233334444
1111222233334444
5555
5555
5555
5555
Etc.
Votre programme affichera six entiers. Le premier entier sera la somme de tous les nombres sur la face supérieure.
000
000 top face
000
111222333444 left, front, right, and back faces, respectively
111222333444
111222333444
555
555 bottom face
555
Le deuxième entier sera la somme de la face gauche, la troisième de l'avant, la quatrième de droite, la cinquième de l'arrière et la sixième du bas.
Donc, si n
c'était 3 et c
était-ce:
242
202
242
000131555313
010121535343
000131555313
424
454
424
Votre programme sortira 20 1 14 43 24 33
.
Règles supplémentaires:
- Les entiers en sortie doivent être délimités par des caractères non entiers. Vous pouvez également choisir de renvoyer un tableau.
- Vous pouvez supposer que l'entrée est correcte -
n
est un entier etc
est un cube de la sortie de débogage de Cubically . Donc, sin
c'était3.0
etc
étaitfoo bar
, votre programme pourrait se casser et être toujours valide. - Votre programme ne doit fonctionner que pour
n > 1
etn < 1260
. Il peut (tenter de) gérer des tailles de cube plus grandes ou plus petites, mais ce n'est pas nécessaire.
C'est le code-golf , donc le code le plus court gagne! Si vous avez besoin d'aide, n'hésitez pas à demander dans le salon de discussion Cubically .
n
espaces après chaque ligne, non. Ils ne sont pas inclus dans le dépotoir.Réponses:
Gelée ,
161413 octets3 octets grâce à Erik l'Outgolfer.
Essayez-le en ligne!
la source
Z
:ḟ⁶ỴV€€sS€ẎsS€
(ouḟ⁶ỴV€€sS€FsS€
)Python 2 ,
155150147123121120 octetsPourrait probablement être joué un peu au golf
Modifier: -5 octets en utilisant une meilleure méthode pour supprimer les espaces blancs
Edit: -3 octets grâce à @Leaky Nun
Edit: -24 octets en ne supprimant pas les espaces blancs
Edit: -2 octets en exploitant la priorité
Essayez-le en ligne!
la source
05AB1E , 16 octets
Essayez-le en ligne!
la source
Husk , 15 octets
3
ṁ
s et 2m
sEssayez-le en ligne!
Explication
la source
mṁṁi
est vraiment agréable!Octave,
645954 octetsEssayez-le en ligne!
Réponse précédente:
Essayez-le en ligne!
Renvoie un tableau en sortie.
la source
Perl 5 , 66 + 1 (-n) = 67 octets
Essayez-le en ligne!
la source
Python 2 ,
137127 octets-10 octets grâce à @Halvard Hummel
Essayez-le en ligne!
la source
Haskell, 128 octets
Accepte une chaîne avec des sauts de ligne.
la source
PowerShell , 236 octets
Essayez-le en ligne!
Ooof, c'est long. Mais, le fractionnement et le tranchage des cordes ne sont pas l'un des points forts de PowerShell, donc je suppose que c'est quelque peu attendu. Aussi - Alors. Beaucoup. Dollars.
Prend respectivement les paramètres
$n
et$z
la taille et le cube net. Construit ensuite une fonction qui est utilisée partout. Ici, nous supprimons des espaces, séparons chaque chiffre individuel, supprimons les caractères vides entre les deux, joignons tous les caractères avec un+
, puis exécutons l'instruction résultante pour obtenir un nombre. Par exemple, cela se transforme"123"
en1+2+3
lequel est exécuté6
.La ligne suivante
split
est le cube d'entrée net sur les sauts de ligne, stockant le résultat dans le tableau$a
. Nous effectuons ensuite la fonction sur les premières$n
lignes et sortons la face supérieure du cube.Pour l'ensemble suivant, nous devons épisser les chaînes en fonction de la taille du cube. Donc, nous parcourons chaque ligne, construisant
$x
comme le motif d'expression rationnelle approprié (par exemple, pour la taille,$n=3
ce sera"(...)"
), divisons la chaîne en fonction de ce motif, supprimant à nouveau les éléments vides et stockons ceux-ci en quatre variables représentant les quatre faces. Celles-ci sont ensuite enchaînées de chaîne àh
traversk
.La ligne suivante est ensuite envoyée
h
viak
la fonction pour afficher les côtés (gauche, avant, droit, arrière) du cube.Enfin, nous exécutons le dernier
$n
lignes à travers la fonction pour afficher la face inférieure du cube.Tous les nombres sont laissés sur le pipeline et la sortie est implicite.
la source
APL (Dyalog Classic) ,
3027 octetsRasé de 3 octets grâce à @ Adám
⍺
est n⍵
est cExplication
Essayez-le en ligne!
la source
⊆
par⎕U2286
n'ajoutera que 5 octets.3
et⍺
.(6,⍺*2)
→6(⍺*2)
,
après⍴
que⍴
utilise toujours son bon argument pour ravel.Cubiquement , 19 octets
Prend le cube de STDIN et la taille comme argument de ligne de commande à l'interpréteur. Sort la somme de la face supérieure, d'un octet nul, de la face gauche, d'un octet nul, ... de la face inférieure et d'un octet nul.
Essayez-le en ligne! ... qui affiche apparemment des octets nuls comme une sorte d'espace blanc sur mon navigateur.
Cette langue n'a pas été faite pour ce défi, mais le défi a été fait pour la langue .... est-ce encore de la triche? ;)
la source