Os botões do Word e alteram o tamanho da fonte de acordo com estas regras:A▲ᴀ▼
- O tamanho da fonte inicial é 11.
- Se for pressionado quando o tamanho da fonte for 1, o tamanho permanecerá 1.ᴀ▼
- O tamanho da fonte muda com 1 ponto no intervalo de 1 a 12.
- O tamanho da fonte muda com 2 pontos no intervalo de 12 a 28.
- As opções são 28, 36, 48, 72 e 80 no intervalo de 28 a 80.
- O tamanho da fonte muda com 10 pontos no intervalo de 80 a 1630.
- O tamanho da fonte muda com 8 pontos no intervalo de 1630 a 1638.
- Se for pressionado quando o tamanho da fonte for 1638, o tamanho permanecerá em 1638.A▲
Tarefa
No menor número de bytes possível, determine o tamanho da fonte resultante quando pressionar um conjunto de botões em qualquer formato razoável.
Exemplos
[3,-1,2]
, o que significa : O resultado é 18.A▲A▲A▲ᴀ▼A▲A▲
Alguns formatos possíveis são '^^^v^^'
, [1 1 1 -1 1 1]
, [True,True,True,False,True,True]
, ["+","+","+","-","+","+"]
, "‘‘‘’‘‘"
, "⛄️⛄️⛄️🌴⛄️⛄️"
, 111011
, "CaB"
, etc ...
[2]
: 14
[-1]
: 10
[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]
?Respostas:
MATL ,
494745 bytesO formato de entrada é
[1 1 -1 1 1 -1 -1 -1]
ou[2 -1 2 -3]
, com vírgulas opcionais.Experimente online! Ou verifique todos os casos de teste .
Explicação
fonte
Word VBA,
1991471261161021008785 BytesPor que imitar quando você pode fazer ?!
Função declarada no
ThisDocument
módulo que recebe entradan
na formaArray(true,true,false,true)
e saída para o seletor de tamanho de fonte do Word :PGolfe:
Ungolfed:
.GIF de uso
obrigado
-21 graças a @ Adám (
Selection.WholeStory:
chamada removida )-10 graças a @ Adám (assuma o ambiente limpo; remova a
f.size=11:
chamada)-14 graças a @ Adám (seletor de tamanho de fonte da palavra de saída atrevido)
-2 graças a @ Adám (bool ParamArray)
-13 para mudar
ParamArray n()
paran
e esperando a entrada como booleana matriz-2 para mover de um módulo de código para o
ThisDocument
móduloVersão antiga 114 bytes
Recebe entrada
n
como um ParamArray, na forma detrue,true,false,true
e gera a palavra vbe imediatamente janelaVersão antiga, 199 bytes
Recebe entrada na forma de
170,-4,6,-1
(aceita números maiores que 1 em magnitude)fonte
Set f=.Size = 12
?JavaScript (ES6),
103101 bytesRecebe a entrada como uma matriz de
-1
/1
.Teste
Mostrar snippet de código
Economizou 2 bytes graças a ETHproductions
fonte
a&&(b=c)
, você pode salvar um bytea?b=c:0
. Aqui, porém, acho que você pode até salvar dois comn+=n>v&&k*[...][i]
Python 2,
111107 bytesRequer entrada para estar no
[-1, 1, 1, -1, ...]
formato. Ele funciona com os exemplos de alguns bytes extras:fonte
i+=[0,d][0<i<179]
pode funcionar #if
afirmação.0
ou179
ficarmos presos lá para sempre.Oitava,
938987 bytesA matriz de entrada pode ter números inteiros maiores que 1 ou menores que -1 para representar a multiplicidade de ações
Graças a Adám, o idioma mudou para o Octave apenas para poder usar a indexação direta em uma matriz.
Economizou 2 bytes graças a rahnema1.
Teste
Em Ideone
fonte
[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]
alguns bytes podem ser salvos!Ruby, 106 bytes
Consegui raspar alguns bytes da solução python (e demorou um pouco para raspar).
É uma função anônima que recebe a entrada na forma de
[1, -1, 1, 1, ...]
. Parece lidar muito bem com a entrada no formulário[170,-12]
, mas não posso garantir que funcione 100% do tempo, por isso vou jogar pelo seguro e dizer que funciona[1, -1, 1, 1, ...]
.Truques que usei:
[0,179,a+b].sort[1]
: Isso fixaa+b
entre 0 e 179, que são os índices válidos da matriz de tamanho de fonte.O uso do operador splat em intervalos os converte em matrizes, para que os tamanhos de fonte disponíveis sejam gerados
[*1..12,*(14..28).step(2),36,48,72,*(80..1630).step(10),1638]
. Qual é uma matriz plana que contém os valores de cada um dos elementos nivelados:1..12
é um intervalo de 1 a 12 (inclusive). O operador splat transforma nos valores1, 2, 3, ..., 11, 12
.(14..28).step(2)
é um enumerador para o intervalo especificado, em que cada passo sobe 2. O operador splat o transforma nos valores14, 16, 18, ..., 26, 28
.36, 48, 72, 1638
) são concatenados em sua posição na grande matriz de tamanho de fonte.Eu usei o método
inject
(/reduce
), que usa cada elemento da matriz de entrada, enquanto os reduzia para uma variável 'memorando' (como o ruby coloca). Eu inicializo isso para 11, e o corpo de cada iteração de injeção é definir essa variável de memorando para o resultado da adição do elemento atual da entrada ao valor atual de memorando e, em seguida, fixando-o entre 0 e 180.Todos saudam o operador splat!
fonte
PHP, 116 bytes
primeiro gera o índice de tamanho (de 1 a 180 inclusive), em
seguida , mapeia para o tamanho do ponto e imprime o resultado.
leva
+N
e-1
de argumentos de linha de comando.(
-N
também é aceito; apenas tome cuidado para que o tamanho não fique abaixo de zero!)Corra com
-nr
.fonte
Perl 5 , 123 bytes
122 bytes de código + 1 para
-a
Experimente online!
Formato de entrada:
fonte