Affichez les 12 chiffres sur un cadran exactement comme ceci:
12
11 1
10 2
9 3
8 4
7 5
6
Pour mieux voir la grille, en voici une avec des points:
...........12............
.....11...........1......
.........................
.10...................2..
.........................
.........................
9.......................3
.........................
.........................
..8...................4..
.........................
......7...........5......
............6............
Notez que la largeur de la grille est multipliée par deux pour la rendre plus carrée.
Notez également que les nombres à deux chiffres sont alignés avec leur chiffre en place. Le chiffre 9 doit être aligné sur la gauche.
Renvoyer ou imprimer le résultat sous forme de chaîne multiligne (et non de liste de lignes). Tous les espaces de fin sont facultatifs. La nouvelle ligne finale est également facultative.
charCodeAt()
05AB1E ,
393331 octetsMerci à Magic Octopus Urn pour avoir économisé 6 octets!
Code
Quelques alternatives de 33 octets:
Utilise le codage 05AB1E . Essayez-le en ligne!
la source
ÿ
avec.V
, très original! Et drôle comment vous avez utilisé12¤
pour obtenir les deux12
et2
sur la pile. J'aurais probablement juste utilisé12Y
, mais j'imagine que la différence est sans importance, puisque les deux ont 12 et 2 sur la pile. Si j'avais essayé ce défi en 05AB1E, j'aurais fini beaucoup plus haut en octets. Devinez, j'ai encore beaucoup à apprendre. ;)Y
. Cela aurait été une option plus facile hahaha.6xsŸ5L•δ;Ì’•2ôúð.ø‚ζJ012∞S¶×‚ζJ.c
mais vous pouvez utiliser n'importe quoi ici.6xŠ»
aussi, je n'aurais jamais pensé à cela.6502 code machine (C64),
827673 octets1
spécialement les premiers chiffresL'idée ici est de ne stocker que les chiffres de tous les nombres dans l'ordre où ils sont nécessaires. Les informations supplémentaires requises sont le nombre de nouvelles lignes à ajouter et le nombre d'espaces devant.
Le nombre maximal de nouvelles lignes est égal à
3
2 bits23
. Par conséquent, 5 bits suffisent. Par conséquent, pour chaque chiffre à imprimer, nous pouvons compresser ces informations dans un seul "octet de contrôle".Ainsi, les données pour cette solution prennent exactement 30 octets: 15 chiffres simples et 15 "octets de contrôle" associés.
Démo en ligne
Utilisation:
SYS49152
pour commencer.Démontage commenté :
la source
JSR $FFD2 / DEY / BNE loop / LDA .control,X / RTS
appel à la fois aux nouvelles lignes et aux espaces? Je pense qu'il serait long de +10 octets et économiserait -12 octets dans le code principal.JSR $FFD2 / DEY / BPL loop / LDA .control,X / RTS
et si le point d’entrée est leDEY
. De cette façon, vous n'avez pas à tester0
dans le code principal.DEY / BPL / RTS
quittera immédiatement sans en traiterJSR $FFD2
. (Notez qu'avec ce schéma, le point d'entrée du sous-programme doit êtreDEY
.)Perl 6 ,
7674 octetsEssayez-le en ligne!
Réponse du port d'Arnauld jusqu'à ce que je puisse proposer quelque chose de plus court.
la source
R ,
7568 octetsEssayez-le en ligne!
Compresse les positions des chiffres. Cela après avoir passé beaucoup de temps à essayer de trouver une réponse trigonométrique (voir l'historique des modifications).
Inspiré par cette autre réponse R achetez J.Doe - votez-le!
Sauvegardé 7 octets grâce à J.Doe.
la source
write
appel modifié pour utiliser le séparateur par défaut.HTML + JavaScript (Canvas), 13 + 161 = 174 octets
Le positionnement arbitraire de la toile utilise 6 octets.
Avec grille de comparaison:
Explication de la formule de positionnement
Voir mon JavaScript avec réponse SVG .
la source
Java
811,141138 octetsEssayez-le en ligne (NOTE:
String.repeat(int)
est émulé commerepeat(String,int)
pour le même nombre d'octets, car Java 11 n'est pas encore sur TIO.)L'explication est similaire à celle ci-dessous, mais elle utilise
" ".repeat(x-48)
pour les espaces au lieu du format avec"%"+(x-48)+"s"
.Java 8, 141 octets
Essayez-le en ligne.
Explication:
Explication complémentaire
92BCN5BB92BNN1BA991CNNNJ995DNNN2I991ENN6H92FN93G
:92
.)la source
R,
168159125 octetsLa solution naïve d'écrire les nombres aux points prescrits dans une matrice de texte. Les points sont stockés sous forme de lettres UTF-8 décodées via
utf8ToInt
Supprimé 9 octets avec la suggestion de JayCe d'utiliser
write
et d'éviter de définir la matrice.Supprimé 34 octets supplémentaires avec la suggestion de stockage de JayCe.
la source
m
et n'utilisant paswrite
: TIO . PS: vous n’êtes pas obligé d’inclure un lien TIO dans votre réponse, mais cela formate bien la réponse, voir l’icône du lien en haut de la page TIO.!
opérateur pour obtenir 125 caractères . Vraiment belle solution!Haskell,
8887 octetsLa méthode encode-espaces-comme-lettres (apparue pour la première fois dans la réponse de @ Arnauld ) en Haskell. L’utiliser
{
et le développer\n
est un octet plus court que l’utiliser\n
directement.Essayez-le en ligne!
la source
Rouille , 96 octets
Essayez-le en ligne!
la source
brainfuck ,
240235 octetsEssayez-le en ligne!
Code commenté
Un exemple rare où le texte est suffisamment répétitif pour que le programme brainfuck soit inférieur à
deux fois1,6 fois la longueur de la sortie!2 octets enregistrés sur proposition de Jo King:
>>>>>>-
->[<]>-
Économisez 3 octets en déplaçant le troisième décompteur de 20 places de l'extrême droite des codes ASCII
10 30 50
vers leur gauche. Enregistre<<>>
lors du remplissage de l'écart entre8
et4
mais ajoute 1 octet à la ligne>>>++
.Version originale
la source
Python 2 , 97 octets
Essayez-le en ligne!
Calcule tous les espacements et les nouvelles lignes dans la boucle
la source
Gelée , 32 octets
Un programme complet qui affiche le résultat.
Essayez-le en ligne!
Comment?
(Je n'ai pas encore pensé à / trouvé quelque chose de plus court que
“¿×¿ Œ4ç4Œ!¿Ø‘
ce qui me semble long pour cette partie - rebondissant / décomposition de base / incréments, rien ne semble économiser!)la source
C (gcc) ,
145137125 octetsSeules les positions de tabulation sont codées en dur: tous les espacements de ligne et les valeurs d'horloge sont générés dans la boucle.
Merci encore à ceilingcat pour les suggestions.
Essayez-le en ligne!
la source
"\r\7\3"[j]
lieu de"NHDA"[j]-65
PHP , 97 octets
Essayez-le en ligne!
C'est une chaîne comprimée codée en dur. Je ne pouvais pas trouver une solution plus courte que celle!
la source
file_put_contents($path, '<?=gzinflate("'.gzdeflate($clockString,9).'");');
, mais je ne suis pas sûr de savoir comment poster un code contenant des données binaires. Un fichier comme celui-ci est de 70 octets.Pyke , 37 octets
Essayez-le ici! (octets bruts)
Essayez-le ici! (Lisible par l'homme)
la source
brainfuck ,
315313 octetssauvé 2 octets grâce à ovs !
Essayez-le en ligne!
tout en un bloc de code:
la source
++++[>++++<-]>
pour le 16 au début.><
dans votre codePowershell,
948882 octetsOpérateur de format direct Powershell .
{i,w}
signifie un espace réservé pour un paramètre avec indexi
, la largeur de l'espace réservé estw
avec alignement à droite.Powershell, 88 octets
Réponse Javascript du port d' Arnauld
-6 octets grâce à @AdmBorkBork
Pour mieux voir la grille, utilisez
'.'
plutôt' '
.la source
.PadLeft
88 octets - Essayez-le en ligne!-f
. Pourquoi n'incluez-vous pas de liens vers Essayez-le en ligne! afin que d'autres puissent voir comment votre code fonctionne?This site can’t be reached
seulement. Désolé.C (gcc) ,
125109105 octetssizeof(wchar_t) == sizeof(int)
- ne fonctionnera pas sous Windows :) Merci ErikF pour cette idée.Essayez-le en ligne!
Ce port est de mon idée générale de la solution 6502 à C. Il est un peu modifiée: au lieu d'avoir un drapeau pour un chef de file
1
, le caractère est imprimé sous forme décimale en soustrayant 48, donc 10 - 12 sont encodées comme:
à<
.la source
Attaché , 69 octets
Essayez-le en ligne!
Ce code pour chaque série d'espaces que:
NTS[count of spaces]
;NTS
est le "numeric to short" intégré, qui permet aux nombres d'être exprimés sous forme de chaînes. Par exemple,NTS[95] = $R1
etNTS[170297] = $XQO
.STN
est l'inverse de cette fonction intégrée.Cette réponse remplace (
ReplaceF
) toutes les occurrences de lettres (/\l/
) dans l'entrée par le résultat de la fonctionsp&`*@STN
, qui décode d'abord la lettre puis se répètesp
(un espace) autant de fois.la source
Rapide ,
178165 octetsvar b="";for c in"L12nF11L1nnB10T2nnn9X3nnnC8T4nnG7L5nM6"{let i=c.unicodeScalars.first!.value;if c=="n"{b+="\n"}else if i>64{for _ in 0..<(i-65){b+=" "}}else{b+="(c)"}};print(b)
D'après ce que Downgoat a posté, j'ai réduit ce nombre à 165 octets:
print("L12nF11L1nnB10T2nnn9X3nnnC8T4nnG7L5nM6".unicodeScalars.map{let x=Int($0.value);return x==110 ?"\n":(x>64 ?String(repeating:" ",count:x-65):"($0)")}.joined())
Développé, avec
$0
converti en une variable nommée:print("L12nF11L1nnB10T2nnn9X3nnnC8T4nnG7L5nM6".unicodeScalars.map { c in let x = Int(c.value) return x == 110 ? "\n" : (x>64 ? String(repeating:" ", count: x-65) : "(c)") }.joined())
La chaîne d'entrée est codée comme suit: Les lettres majuscules (
A-Z
) représentent des blocs d'espaces, décalés de 65. CelaA
signifie 0 espaces,B
1 espace, les premiersL
11, etc.n
s sont convertis en traits nouveaux. Tous les autres caractères sont imprimés tels quels.Exécutez-le en ligne ici (merci, mbomb007)
la source
{"L12NF11L1NNB10T2NNN9X3NNNC8T4NNG7L5NM6".unicodeScalars.map({(c)->String in let x=c.value;return x==78 ? "\n" : x>64 ?String(repeating:" ",count:x-65) : "\(c)"}).joined()}
(swift 3 (-swift-version 3
sur repl) parce que swift 4 a laissé tomber la soustraction à laquelle il ressemble)Pure Bash , 123
printf
fait le gros du travail ici:Essayez-le en ligne!
la source
Rouge , 151 octets
Essayez-le en ligne!
la source
JavaScript avec SVG, 188 octets
Une hauteur de ligne arbitraire de 120% utilise 4 octets.
Avec grille de comparaison:
Explication de la formule de positionnement
Let
f(x) = round(sin(x * π/6) * 6)
.En supposant que l'origine soit le centre de l'horloge, les coordonnées de la grille du chiffre le plus à droite d'un numéro d'horloge donné
x
sont [f(x) * 2
,f(9 - x)
].la source
Bash, 225 octets
Ce qui est ennuyeux est plus long que la solution naïve consistant à n’imprimer que chaque ligne en boucle (132 caractères si vous utilisez des tabulations).
la source
tr -d \<space>
(où<space>
est le caractère d'espace) fonctionnerait au lieu de la substitution sed?tr -d\
serait équivalent àsed 's/ //g'
Python 3 ,
1128887 octetsUne solution utilisant l'interpolation de chaîne.
Essayez-le en ligne!
-25 octets grâce aux ovs et à Herman L.
la source
{11:7}
.C (gcc) ,
135123110 octetsCeci utilise un encodage simple où tout
c
entre'a'
et'z'
représentec-'a'+1
des espaces répétés,'`'
représente une nouvelle ligne, et tous les autres caractères restent inchangés.Essayez-le en ligne!
la source
*s=L"...";f(i){
lieu def(i){char*s="...";
T-SQL, 132 octets
Seulement 12 octets plus court que la solution triviale (
PRINT
de la chaîne entière telle quelle).J'ai trouvé une variation que j'apprécie beaucoup plus longue (
235226 octets), mais beaucoup plus semblable à SQL:STRING_SPLIT
le divise en rangées au niveau des virgules etPARSENAME
divise chaque rangée en points. Les 1er et 3ème sont utilisés pour combien d'espaces à imprimer, les 2ème et 4ème sont utilisés pour ce qu'il faut afficher.(les sauts de ligne dans celui-ci sont juste pour la lisibilité)
la source
Perl 6 , 116 octets
Essayez-le en ligne!
(Ta @JoKing pour économiser 26 octets)
Perl 6 , 142 octets
Essayez-le en ligne!
Je voulais faire quelque chose de différent. Donc, celui-ci calcule les positions de tous les chiffres, via des paires de caractères, supprime l’espace initial et affiche les lignes.
Facilement modifiable pour différents paramètres, par exemple une version large de 45 caractères à 17 chiffres .
la source