Wyzwanie:
Utwórz funkcję lub program, który przyjmie wartość N (liczbę od 0 do 24), która reprezentuje GODZINĘ.
Wyjście powinno wyciągnąć zegar analogowy z gwiazdek pokazujących godzinę N.
🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛
Uwagi:
• Wskazówka minutowa musi być dłuższa niż wskazówka godzinowa (pod względem liczby użytych gwiazdek)
• Wskazówka minutowa musi zawierać co najmniej 2 gwiazdki.
• Południe, godzina piętnasta, godzina szesnasta i godzina dwudziesta trzecia zawsze będą ustawione prostopadle. Twoje wyniki dla godzin pośrednich, jeśli są uporządkowane według stopni, powinny być w tej samej kolejności, co godziny w ciągu dnia. Chodzi mi o to w południe godzinowa wynosi 0 ° i 3 po południu godzinowa wynosi 90º tak dla przypadków wyjściowych 1pm i 2pm dodaje musi być prawdą 0pm_deg < 1pm_deg < 2pm_deg < 3pm_deg
. Oprócz tej zasady rzeczywista ilość stopni może być dowolna, oczywiście zmieni się w zależności od czcionki i innych czynników rodzimych.
• Połączenie między wskazówką godzinową i wskazówką minutową jest dowolnym okrągłym / owalnym znakiem Unicode. o, O, •, 0, etc.
Przykład wejścia / wyjścia (może się różnić w zależności od stylów rysowania)
N = 3;
*
*
*
O * *
N = 4;
*
*
*
O
*
*
N = 5;
*
*
*
0
*
*
N = 6;
*
*
o
*
N = 7;
*
*
*
•
*
*
N = 0,12,24;
*
*
*
o
Przykład różnicowania wyników:
N = 4 VS N = 5 VS N = 6
* * *
* * *
O O O
* * *
To jest golf golfowy , więc wygrywa program z najkrótszą liczbą bajtów!
3
mieć inny rozmiar niż wskazówka minutowa7
?23:00
jest11:00
. W mojej głowie próbowałem ponownie powrócić do 12 rękiOdpowiedzi:
JavaScript (ES6),
1057665 bajtów-29 bajtów:
-11 bajtów:
y==(N%12).toString(16)?'*':' '
->'0x'+y^N%12?' ':'*'
Oryginał z dłuższymi rękami: (
10594 bajtów)źródło
CSS / HTML (JavaScript), 62 + 106 =
180168 bajtówEdycja: Zapisano 9 bajtów dzięki @nderscore.
źródło
<body onload=f(prompt())>
<input oninput=h.style.transform=`rotate(${this.value*30}deg)`>
Python 2 ,
148140135 bajtów-8 poprzez usunięcie niektórych resztek spacji i niepotrzebnej nowej linii.
-5, zmieniając
(' ','*')
na' *'
Wypróbuj online!
źródło
C (gcc) , 144 bajty
Wypróbuj online!
źródło
SmileBASIC,
908874 bajtówPrzykładowe dane wyjściowe:
źródło
Python 3 ,
8685 bajtów-1 bajt, lepsza tarcza zegara (kredyt DuctrTape, jak w mojej odpowiedzi Jelly)
Wypróbuj online!
źródło
Galaretka ,
35 3433 bajtówWypróbuj online! (
tI©
!) lub zobacz wszystkie (0–24) .W jaki sposób?
Zauważ, że
“ tI©’Œ?Ḋ
(permutacja przy indeksie, odznaczanie kolejki) to zapisywanie bajtów ponad“9ȧỤ_ÑḶ’b⁴
(podstawa 16 z), które jest zapisywanie bajtów ponad“¦þxṙ<ȥ’ḃ13
(podstawa 13 bijective).†
Jeśli chodzi o pop - mamy dodatkowe miejsce w ciągu, w którym gwiazdka dla 0, 12, 24 pójdzie, aby pozwolić na indeksowanie mod-12 listy indeksów, usunięcie ostatniego znaku jest bajtem tańszym niż dokonanie“**o”
wcześniejszego połączenia i nadpisanie jednej z tych gwiazdek.‡
Odnośnie rotacji - jest to zapis bajtowy nad budowaniem łańcucha ze znakiem „** **” w środku (albo z nim przed, albo po umieszczeniu gwiazdki).źródło
Haskell, 148 bajtów
Funkcja c to ta, która rozwiązuje dane zadanie
źródło
Narzędzia Bash + Unix, 57 bajtów
(Po ostatnim odwrotnym ukośniku jest spacja).
Wypróbuj online!
Niezbyt ładny zegar, ale spełnia wszystkie wymagania.
źródło
PHP, 71 bajtów
1 wskazówka godzin gwiazdki, 2 wskazówki minut gwiazdki.
pobiera dane wejściowe z argumentu wiersza poleceń; biegać z
-nr
.źródło
05AB1E , 41 bajtów
Jest to zbyt wolne dla TIO.
Aby uzyskać podobny kod działający na TIO, spróbuj tego
Jestem całkiem pewien, że można to jeszcze pograć w golfa i przyspieszyć.
Wyjaśnienie nastąpi później.
źródło
Kod logiczny 634 bajtów
Nie mogłem dowiedzieć się, jak wpisać, więc istnieje var a = ... dla danych wejściowych na górze tio link
Zrezygnowałem z gry w golfa. Może to jednak skrócić czas kosztem spowodowania, że zegar będzie wyglądał okropnie.
Wypróbuj online
źródło