Słowa i przyciski zmieniają rozmiar czcionki zgodnie z następującymi zasadami:A▲ᴀ▼
- Początkowy rozmiar czcionki to 11.
- Jeśli zostanie naciśnięty, gdy rozmiar czcionki wynosi 1, rozmiar pozostanie 1.ᴀ▼
- Rozmiar czcionki zmienia się o 1 punkt w zakresie 1–12.
- Rozmiar czcionki zmienia się o 2 punkty w zakresie 12–28.
- Dostępne opcje to 28, 36, 48, 72 i 80 w zakresie 28 - 80.
- Rozmiar czcionki zmienia się o 10 punktów w zakresie 80-1630.
- Rozmiar czcionki zmienia się o 8 punktów w zakresie 1630-1638.
- Jeśli zostanie naciśnięty, gdy czcionka ma rozmiar 1638, rozmiar pozostanie 1638.A▲
Zadanie
W jak najmniejszej liczbie bajtów określ wynikowy rozmiar czcionki, gdy otrzymasz zestaw naciśnięć przycisków w dowolnym rozsądnym formacie.
Przykłady
[3,-1,2]
, co oznacza : wynik to 18.A▲A▲A▲ᴀ▼A▲A▲
Niektóre z możliwych formatów '^^^v^^'
, [1 1 1 -1 1 1]
, [True,True,True,False,True,True]
, ["+","+","+","-","+","+"]
, "‘‘‘’‘‘"
, "⛄️⛄️⛄️🌴⛄️⛄️"
, 111011
, "CaB"
, itd ...
[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]
?Odpowiedzi:
MATL ,
494745 bajtówFormat wejściowy to
[1 1 -1 1 1 -1 -1 -1]
lub[2 -1 2 -3]
, z opcjonalnymi przecinkami.Wypróbuj online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
Słowo VBA,
1991471261161021008785 bajtówPo co naśladować, kiedy możesz ?!
Zadeklarowana funkcja w
ThisDocument
module, która pobiera dane wejściowen
w postaciArray(true,true,false,true)
i wyprowadza do selektora rozmiaru czcionki Word :PGra w golfa:
Nie golfowany:
.GIF użytkowania
Dzięki
-21 dzięki @ Adám (usunięte
Selection.WholeStory:
połączenie)-10 dzięki @ Adám (załóż czyste środowisko; usuń
f.size=11:
połączenie)-14 dzięki @ Adám (bezczelny selektor rozmiaru czcionki tekstu wyjściowego)
-2 dzięki @ Adám (bool ParamArray)
-13 do zmieniających
ParamArray n()
sięn
i oczekując wejścia jako Boolean Array-2 do przejścia z modułu kodu do
ThisDocument
modułuStara wersja 114 bajtów
Pobiera dane wejściowe
n
jako ParamArray, w postacitrue,true,false,true
i wypisuje słowo vbe, co powoduje natychmiastowe otwarcie oknaStarsza wersja, 199 bajtów
Pobiera dane wejściowe w postaci
170,-4,6,-1
(przyjmuje wartości większe niż 1 pod względem wielkości)źródło
Set f=.Size = 12
?JavaScript (ES6),
103101 bajtówPobiera dane wejściowe jako tablicę
-1
/1
.Test
Pokaż fragment kodu
Zaoszczędzono 2 bajty dzięki produktom ETH
źródło
a&&(b=c)
zapisać bajt za pomocąa?b=c:0
. Tutaj jednak myślę, że możesz nawet uratować dwa dziękin+=n>v&&k*[...][i]
Python 2,
111107 bajtówWymaga wejścia w
[-1, 1, 1, -1, ...]
formacie. Działa z przykładami niektórych dodatkowych bajtów:źródło
i+=[0,d][0<i<179]
może działaćif
oświadczenie.0
lub179
utkniemy tam na zawsze.Oktawa,
938987 bajtówTablica wejściowa może mieć liczby całkowite większe niż 1 lub mniejsze niż -1, co reprezentuje wielość akcji
Dzięki Adámowi zmieniono język na Octave, aby móc korzystać z bezpośredniego indeksowania w tablicy.
Zaoszczędzono 2 bajty dzięki rahnema1.
Test
Na Ideone
źródło
[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]
niektóre bajty można zapisać!Rubinowy, 106 bajtów
Udało mi się ogolić kilka bajtów z rozwiązania python (i zajęło mi to trochę czasu).
Jest to anonimowa funkcja, która przyjmuje dane wejściowe w postaci
[1, -1, 1, 1, ...]
. Wydaje się, że całkiem dobrze radzi sobie z danymi wejściowymi w formularzu[170,-12]
, ale nie mogę zagwarantować, że będzie działać przez 100% czasu, więc zagram to bezpiecznie i powiem, że działa[1, -1, 1, 1, ...]
.Sztuczki, których użyłem:
[0,179,a+b].sort[1]
: To się zaciskaa+b
wynosi od 0 do 179, które są prawidłowymi indeksami tablicy rozmiarów czcionek.Użycie operatora splat na zakresach przekształca je w tablice, dzięki czemu generowane są dostępne rozmiary czcionek
[*1..12,*(14..28).step(2),36,48,72,*(80..1630).step(10),1638]
. Który jest płaską tablicą zawierającą wartości z każdego ze spłaszczonych elementów:1..12
jest w zakresie od 1 do 12 (włącznie). Operator ikony zamienia go w wartości1, 2, 3, ..., 11, 12
.(14..28).step(2)
to moduł wyliczający dla danego zakresu, w którym każdy krok rośnie o 2. Operator splat przekształca go w wartości14, 16, 18, ..., 26, 28
.36, 48, 72, 1638
) są konkatenowane na swojej pozycji w wielkiej tablicy rozmiarów czcionek.Użyłem metody
inject
(/reduce
), która wykorzystuje każdy element tablicy wejściowej, jednocześnie redukując je do zmiennej „memo” (jak to określa Ruby). Inicjuję to na 11, a treść każdej iteracji wtrysku polega na ustawieniu tej zmiennej notatki w wyniku dodania bieżącego elementu wejścia do bieżącej wartości notatki, a następnie zaciśnięcia jej między 0 a 180.Chwała operatorowi splat!
źródło
PHP, 116 bajtów
najpierw generuje indeks wielkości (od 1 do 180 włącznie),
a następnie mapuje go do rozmiaru punktu i drukuje wynik.
pobiera
+N
i-1
z argumentów wiersza poleceń.(
-N
jest również akceptowane; uważaj, aby rozmiar nie przeskakiwał poniżej zera!)Uruchom z
-nr
.źródło
Perl 5 , 123 bajtów
122 bajty kodu + 1 dla
-a
Wypróbuj online!
Format wejściowy:
źródło