Jeśli masz w domu małe dziecko, być może natrafiłeś na litery z pianki do kąpieli. Można je zwilżyć i przykleić do płaskich powierzchni, takich jak płytki i bok wanny, aby tworzyć słowa i wiadomości.
Zakres słów i wiadomości jest nieco ograniczona, jeśli masz tylko jeden zestaw chociaż, ponieważ można dostać tylko 36 znaków: wielkie litery AZ i cyfry 0-9: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
. Jednak możesz być przebiegły i nadużywać niektórych liter i cyfr, aby tworzyć dodatkowe kopie innych liter:
3: E
1: I
7: L (when rotated)
M: W (when rotated)
0: O
2: S (when flipped)
5: S
W: M (when rotated)
2: Z
5: Z (when flipped)
O: 0
6: 9 (when rotated)
L: 7 (when rotated)
9: 6 (when rotated)
Zauważ, że nie wszystkie są dwukierunkowe, ponieważ łatwiej jest odczytać cyfrę jako część słowa niż literę jako część liczby.
Każdy zestaw występuje również w różnych kolorach, w których każda litera jest pokolorowana po kolei. Na przykład, jeśli twój zestaw ma 3 kolory, czerwony, żółty i niebieski, twój zestaw będzie wyglądał następująco:
- Czerwony:
ADGJMPSVY147
- Żółty:
BEHKNQTWZ258
- Niebieski:
CFILORUX0369
Twoim zadaniem jest zatem przyjęcie trzech parametrów (w dowolny odpowiedni sposób) wskazujących słowo lub frazę, liczby używanych kolorów i liczby posiadanych zestawów, a następnie wygenerowanie reprezentacji słowa lub frazy w zestaw odpowiednich kolorów, w razie potrzeby wykorzystując zamienniki. Jeśli nie jest możliwe utworzenie słowa lub frazy z podaną liczbą zestawów, zamiast tego wpisz „Nie” w odpowiednich kolorach.
Przykłady
We wszystkich z nich pierwszy parametr to słowo lub fraza, drugi to liczba kolorów, a trzeci to liczba dostępnych zestawów.
["bath", 3, 1]
["programming", 3, 2]
["puzzles", 3, 1]
["code golf", 5, 1]
["willow tree", 1, 1]
["impossible phrase", 8, 1]
- w zestawie jest tylko 1 P i nie ma ważnych podstawień
Notatki
- Możesz ustawić domyślnie na 1 zestaw, jeśli to pomaga (np. Domyślna wartość parametru 1), ale na żądanie musisz obsługiwać wiele zestawów. Liczba zestawów zawsze będzie dodatnią liczbą całkowitą niezerową.
- Jeśli masz wiele zestawów, wszystkie są kolorowe w ten sam sposób: jeśli A jest czerwony w pierwszym zestawie, będzie również czerwony w drugim zestawie. Kolory są stosowane dla zestawu, a nie dla wszystkich zestawów w danym wywołaniu
- Musisz obsługiwać od 1 do 36 kolorów - 1 oznacza, że wszystkie znaki są tego samego koloru, 36 oznacza, że wszystkie są różne. Będzie tylko całkowita liczba kolorów.
- Możesz używać dowolnych kolorów, o ile są one wizualnie różne - jeśli wysyłasz dane do terminala, możesz użyć kombinacji pierwszego planu i tła jako „koloru”, chociaż nie możesz używać tego samego koloru dla pierwszego planu i tła
- Dane wyjściowe muszą zawierać znaki, których faktycznie używasz, a nie znaki z danych wejściowych. Na przykład, jeśli jako dane wejściowe użyto [„wierzby”, 1, 1], można wyprowadzać obraz
WIL7OM
z obróceniem o 7 i M o 180 stopni - Powinieneś najpierw użyć poprawnych liter, a następnie podstawić:
MI7LOW
jest niepoprawny dla [„wierzba”, 1, 1] - Możesz użyć dowolnego podstawienia dla danej postaci:
SO5
aSO2
przy odwróconej 2 oba są ważne dla „SOS” - Wiele wywołań kodu dla tego samego wejścia nie musi dawać identycznych danych wyjściowych
- Dane wyjściowe powinny być pisane wielkimi literami, ale dane wejściowe mogą występować w dowolnej kombinacji wielkich i małych liter
- Powinno to być oczywiste, ale przestrzeń nie ma koloru
Zasady
- To jest kod golfowy, ale z pół-graficznym wyjściem (nie jestem pewien, czy możesz zrobić odwrócony tekst w terminalu, ale jestem zainteresowany, aby sprawdzić, czy Pyth ma dla niego wbudowane)
- Obowiązują standardowe luki
- Nie ma bonusów za funkcje, ale proszę głosować na ciekawe odpowiedzi
- Dołącz do swoich zrzutów ekranu niektóre zrzuty ekranu
Powiązane wyzwania
- Alfabet mojej córki - częściowa odwrotność tego wyzwania, szukanie minimalnego zestawu liter do napisania szeregu zdań
- Czy litera pasuje do drugiej? - o innym rodzaju liter piankowych, ale z podobną alternatywą do motywu literowego
NOPE
?Odpowiedzi:
HTML / JavaScript (z jQuery) / CSS - nie konkuruje / nie gra w golfa
Aby rzucić piłkę i pokazać, że nie jest to niemożliwe, oto niekonkurencyjna, niekonkurująca implementacja, która naiwnie podchodzi do zadania.
Najpierw tworzy ciąg wszystkich możliwych znaków (
tempalph
), łącząc tyle kopii alfabetu, ile jest zestawów. Następnie iteruje frazę, umieszczając każdą literę frazy w zmiennej wyjściowej i usuwając z niej pierwsze wystąpienie tej literytempalph
. Jeśli nie może (litera nie istnieje), sprawdza, czy można ją zastąpić czymś pozostałym w ciągu. Jeśli to również się nie powiedzie, generuje wstępnie zdefiniowane wyjście „NOPE”. Zakładając, że nie trafi w przypadek „NOPE”, zwraca ciąg wyjściowy i umieszcza go w DIV na stronie.Następnie przechodzi przez podstawowy ciąg alfabetu, a jeśli użyto litery, przypisuje jej odpowiednią klasę CSS, z których każda ma wstępnie zdefiniowany zestaw kolorów.
Używa danych wejściowych HTML do wprowadzania danych i aktualizacji w nich zawartych.
Wypróbuj w JSFiddle
Przykład dla
["BATH", 3, 1]
:JS:
HTML:
CSS:
źródło