Les mots et les boutons modifient la taille de la police selon ces règles:A▲ᴀ▼
- La taille de police de départ est 11.
- Si est enfoncé lorsque la taille de police est 1, la taille reste 1.ᴀ▼
- La taille de la police change avec 1 point dans la plage 1 - 12.
- La taille de la police change avec 2 points dans la plage 12 - 28.
- Les choix sont 28, 36, 48, 72 et 80 dans la plage 28 - 80.
- La taille de police change avec 10 points dans la plage 80 - 1630.
- La taille de la police change avec 8 points dans la plage 1630 - 1638.
- Si est enfoncé lorsque la taille de police est 1638, la taille reste 1638.A▲
Tâche
En aussi peu d'octets que possible, déterminez la taille de police résultante lorsque vous disposez d'un ensemble de pressions de bouton dans un format raisonnable.
Exemples
[3,-1,2]
, ce qui signifie : Le résultat est 18.A▲A▲A▲ᴀ▼A▲A▲
Certains formats possibles sont '^^^v^^'
, [1 1 1 -1 1 1]
, [True,True,True,False,True,True]
, ["+","+","+","-","+","+"]
, "‘‘‘’‘‘"
, "⛄️⛄️⛄️🌴⛄️⛄️"
, 111011
, "CaB"
, etc ...
[2]
: 14
[-1]
:dix
[13]
: 80
[-11,1]
: 2
[11,-1]
: 36
[170,-1]
: 1630
[2000,-2,100]
: 1638
"^vvv^v^^^v"
,[-1, 1, 1, -1, 1, -1]
,[0, 1, 0, 1, 1, 0, 1]
?Réponses:
MATL ,
494745 octetsLe format d'entrée est
[1 1 -1 1 1 -1 -1 -1]
ou[2 -1 2 -3]
, avec des virgules facultatives.Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
Mot VBA,
1991471261161021008785 OctetsPourquoi émuler quand vous pouvez le faire?!
Fonction déclarée dans le
ThisDocument
module qui prend les entréesn
sous la formeArray(true,true,false,true)
et les sorties vers le sélecteur de taille de police Word :PGolfé:
Ungolfed:
.GIF d'utilisation
Merci
-21 grâce à @ Adám (
Selection.WholeStory:
appel supprimé )-10 grâce à @ Adám (supposez un environnement propre; supprimez l'
f.size=11:
appel)-14 grâce à @ Adám (sélecteur de taille de police de mots effrontés)
-2 merci à @ Adám (bool ParamArray)
-13 pour passer
ParamArray n()
àn
et attend l' entrée comme matrice booléenne-2 pour passer d'un module de code au
ThisDocument
moduleAncienne version 114 octets
Prend l'entrée en
n
tant que ParamArray, sous la formetrue,true,false,true
et affiche le mot vbe immediates windowVersion plus ancienne, 199 octets
Prend l'entrée sous la forme de
170,-4,6,-1
(accepte les nombres supérieurs à 1 en magnitude)la source
Set f=.Size = 12
?JavaScript (ES6),
103101 octetsPrend l'entrée comme un tableau de
-1
/1
.Tester
Afficher l'extrait de code
Sauvegardé 2 octets grâce à ETHproductions
la source
a&&(b=c)
, vous pouvez enregistrer un octet aveca?b=c:0
. Ici cependant, je pense que vous pouvez même en sauver deux avecn+=n>v&&k*[...][i]
Python 2,
111107 octetsNécessite que l'entrée soit au
[-1, 1, 1, -1, ...]
format. Il fonctionne avec les exemples de quelques octets supplémentaires:la source
i+=[0,d][0<i<179]
pourrait fonctionnerif
déclaration.0
ou que179
nous y restions pour toujours.Octave,
938987 octetsLe tableau d'entrée peut avoir des entiers supérieurs à 1 ou inférieurs à -1 pour représenter la multiplicité d'actions
Merci à Adám, Changé la langue en Octave uniquement pour pouvoir utiliser l'indexation directe dans un tableau.
Enregistré 2 octets grâce à rahnema1.
Tester
Sur Ideone
la source
[1:12,14:2:28,36,48,72,80:10:1630,1638](L)
.[1:11 [6:14 18 24 36 40:5:815 819]*2]
certains octets peuvent être enregistrés!Rubis, 106 octets
J'ai réussi à raser quelques octets de la solution python (et cela a pris du temps à se raser).
C'est une fonction anonyme qui prend l'entrée sous la forme de
[1, -1, 1, 1, ...]
. Il semble également très bien gérer les entrées dans le formulaire[170,-12]
, mais je ne peux pas garantir que cela fonctionnera à 100% du temps, donc je vais jouer prudemment et dire que cela fonctionne avec[1, -1, 1, 1, ...]
.Astuces que j'ai utilisées:
[0,179,a+b].sort[1]
: Cette valeura+b
doit être comprise entre 0 et 179, qui sont les index valides du tableau de taille de police.L'utilisation de l'opérateur splat sur des plages les convertit en tableaux, de sorte que les tailles de police disponibles sont générées à partir de
[*1..12,*(14..28).step(2),36,48,72,*(80..1630).step(10),1638]
. Qui est un tableau plat contenant les valeurs de chacun des éléments aplatis:1..12
est une plage de 1 à 12 (inclus). L'opérateur splat le transforme en valeurs1, 2, 3, ..., 11, 12
.(14..28).step(2)
est un énumérateur pour la plage donnée, où chaque étape monte de 2. L'opérateur splat la transforme en valeurs14, 16, 18, ..., 26, 28
.36, 48, 72, 1638
) sont toutes concaténées dans leur position dans le grand tableau de taille de police.J'ai utilisé la méthode
inject
(/reduce
), qui utilise chaque élément du tableau d'entrée, tout en les réduisant en une variable «mémo» (comme le dit ruby). J'initialise cela à 11, et le corps de chaque itération d'injection consiste à définir cette variable de mémo au résultat de l'ajout de l'élément actuel de l'entrée à la valeur de mémo actuelle, puis de la bloquer entre 0 et 180.Salut à tous l'opérateur splat!
la source
PHP, 116 octets
génère d'abord l'index de taille (de 1 à 180 inclus),
puis le mappe à la taille en points et imprime le résultat.
prend
+N
et-1
des arguments de ligne de commande.(
-N
est également accepté; faites juste attention à ce que la taille ne saute pas en dessous de zéro!)Courez avec
-nr
.la source
Perl 5 , 123 octets
122 octets de code + 1 pour
-a
Essayez-le en ligne!
Format d'entrée:
la source