Word и кнопки изменяют размер шрифта в соответствии с этими правилами:A▲ᴀ▼
- Начальный размер шрифта 11.
- Если нажать, когда размер шрифта равен 1, размер остается равным 1.ᴀ▼
- Размер шрифта изменяется с 1 точкой в диапазоне 1 - 12.
- Размер шрифта изменяется с 2 точками в диапазоне 12 - 28.
- Варианты выбора: 28, 36, 48, 72 и 80 в диапазоне от 28 до 80.
- Размер шрифта изменяется с 10 точками в диапазоне 80 - 1630.
- Размер шрифта изменяется с 8 точками в диапазоне 1630 - 1638.
- Если нажата, когда размер шрифта равен 1638, размер остается 1638.A▲
задача
В максимально возможном количестве байтов определите размер получаемого шрифта при наличии набора нажатий кнопок в любом приемлемом формате.
Примеры
[3,-1,2]
, значение : результат 18.A▲A▲A▲ᴀ▼A▲A▲
Некоторые возможные форматы '^^^v^^'
, [1 1 1 -1 1 1]
, [True,True,True,False,True,True]
, ["+","+","+","-","+","+"]
, "‘‘‘’‘‘"
, "⛄️⛄️⛄️🌴⛄️⛄️"
, 111011
, "CaB"
и т.д. ...
[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]
?Ответы:
MATL ,
494745 байтФормат ввода -
[1 1 -1 1 1 -1 -1 -1]
или[2 -1 2 -3]
, с дополнительными запятыми.Попробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
источник
Слово VBA,
1991471261161021008785 байтЗачем подражать, когда можно сделать ?!
Объявлена функция в
ThisDocument
модуле, которая принимает вводn
в видеArray(true,true,false,true)
и выводит в селектор размера шрифта Word :PGolfed:
Ungolfed:
.GIF использования
Благодарность
-21 благодаря @ Adám (удаленный
Selection.WholeStory:
звонок)-10 благодаря @ Adám (допустим, чистая среда; удалить
f.size=11:
вызов)-14 благодаря @ Adám (дерзкий селектор размера шрифта для выходного слова)
-2 благодаря @ Adám (bool ParamArray)
-13 для перехода
ParamArray n()
наn
и ожидание ввода в качестве логического массива-2 для перехода от модуля кода к
ThisDocument
модулюСтарая версия 114 байт
Принимает входные данные
n
как ParamArray, в формеtrue,true,false,true
и выводит слово vbe.Старая версия, 199 байт
Принимает ввод в виде
170,-4,6,-1
(принимает числа больше 1 по величине)источник
Set f=.Size = 12
?JavaScript (ES6),
103101 байтПринимает ввод как массив
-1
/1
.Тест
Показать фрагмент кода
Сохранено 2 байта благодаря ETHproductions
источник
a&&(b=c)
, вы можете сохранить байт с помощьюa?b=c:0
. Здесь, я думаю, вы даже можете сохранить два сn+=n>v&&k*[...][i]
Python 2,
111107 байтТребуется ввод в
[-1, 1, 1, -1, ...]
формате. Это работает с примерами для некоторых дополнительных байтов:источник
i+=[0,d][0<i<179]
может работатьif
заявление.0
или179
мы застряли там навсегда.Октав,
938987 байтВходной массив может иметь целые числа больше 1 или меньше -1 для представления множества действий
Благодаря Adám, язык изменен на Octave только для того, чтобы можно было использовать прямую индексацию в массиве.
Сохранено 2 байта благодаря rahnema1.
Тест
По идоне
источник
[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]
некоторые байты могут быть сохранены!Рубин, 106 байт
Мне удалось сбрить пару байтов из решения Python (и это заняло некоторое время для бритья).
Это анонимная функция, которая принимает данные в форме
[1, -1, 1, 1, ...]
. Похоже, что он довольно хорошо справляется с вводом в форме[170,-12]
, но я не могу гарантировать, что он будет работать 100% времени, поэтому я буду осторожен и скажу, что он работает[1, -1, 1, 1, ...]
.Трюки, которые я использовал:
[0,179,a+b].sort[1]
: Это ограничениеa+b
от 0 до 179, которые являются действительными индексами массива font-size.Использование оператора splat для диапазонов преобразует их в массивы, поэтому из них генерируются доступные размеры шрифта
[*1..12,*(14..28).step(2),36,48,72,*(80..1630).step(10),1638]
. Который является плоским массивом, содержащим значения от каждого из сплющенных элементов:1..12
это диапазон от 1 до 12 (включительно). Оператор splat превращает его в значения1, 2, 3, ..., 11, 12
.(14..28).step(2)
является перечислителем для данного диапазона, где каждый шаг увеличивается на 2. Оператор splat превращает его в значения14, 16, 18, ..., 26, 28
.36, 48, 72, 1638
) объединяются в своей позиции в массив большого размера шрифта.Я использовал метод
inject
(/reduce
), который использует каждый элемент входного массива, в то же время сокращая их до переменной «memo» (как выражается в ruby). Я инициализирую это как 11, и тело каждой итерации вставки должно установить эту переменную памятки в результат добавления текущего элемента ввода к текущему значению памятки, а затем зафиксировать его между 0 и 180.Приветствую оператора сплат!
источник
PHP, 116 байт
сначала генерирует индекс размера (от 1 до 180 включительно),
затем сопоставляет его с размером точки и печатает результат.
берет
+N
и-1
из аргументов командной строки.(
-N
также принимается; просто позаботьтесь о том, чтобы размер не перепрыгивал ниже нуля!)Беги с
-nr
.источник
Perl 5 , 123 байта
122 байта кода + 1 для
-a
Попробуйте онлайн!
Формат ввода:
источник