Wskazówki do gry w golfa w LOLCODE

14

Jakie masz ogólne wskazówki na temat gry w golfa w LOLCODE? Szukam pomysłów, które można by zastosować do ogólnych problemów z golfem, które są przynajmniej nieco specyficzne dla LOLCODE. (np. „usuń komentarze” nie jest odpowiedzią). Proszę zamieścić jedną wskazówkę na odpowiedź.

Loovjo
źródło
Myślałem o tym, żeby to opublikować. Gra w LOLCODE jest właściwie niemożliwa.
Alex A.,
2
Nieco zawstydzające, moje drugie i trzecie najwyższe uprzywilejowane odpowiedzi są w LOLCODE. Wykorzystam więc tę okazję, aby podzielić się wszystkim, co wiem.
Alex A.,

Odpowiedzi:

7

Zdefiniuj zmienne używając składni variable R valuezamiast I HAS A variable ITZ value.

Jeśli chcesz ustawić zmienną nrówną 1,

n R 1

ma tylko 5 bajtów, podczas gdy

I HAS A n ITZ 1

ma 15 bajtów.

Alex A.
źródło
2
Ale wtedy tracisz cały sens LOLKODU!
Optymalizator
3
@Optimizer: Szczerze mówiąc, kiedy jest kiedykolwiek sens LOLCODE?
Alex A.,
18
Oczywiście LOLCODE dotyczy loli.
user12205
1
@ace: Dobra, masz mnie tam.
Alex A.,
6
lol
bjb568
3

W wielu implementacjach lolcode, takich jak ten na repl.it , HAIi KTHXBYE, które rozpoczynają i programów końcowych odpowiednio, są niepotrzebne. W implementacjach, w których są one konieczne, numer wersji po HAInie jest konieczny (np HAI 1.2.).

Podobnie, STDIObiblioteka jest zwykle ładowana domyślnie, więc CAN HAS STDIO?jest również niepotrzebna.

Alex A.
źródło
3

W wielu przypadkach krótsze jest odczytywanie wartości zmiennych ze STDIN niż definiowanie funkcji. Zauważ jednak, że GIMMEHktóry odczytuje dane wejściowe ze STDIN, zawsze czyta YARN(tj. Ciąg). Ale możesz skorzystać z dynamicznego pisania LOLCODE i dodać 0, aby przekonwertować na aNUMBR .

Na przykład,

GIMMEH n
n R SUM OF n AN 0    
... (operations on n)

Definiowanie nto 26 bajtów, w tym znaki nowego wiersza. Porównaj to z funkcją zdefiniowaną przez użytkownika:

HOW DUZ I f YR n
    ... (operations on n)
IF U SAY SO

Wymaga to 28 bajtów.

Zauważ, że możesz również pomnożyć przez 1, aby przekonwertować na a NUMBR, ale to wymaga 4 bajtów więcej niż suma:

GIMMEH n
n R PRODUKT OF n AN 1
Alex A.
źródło
1
Ale n IS NOW A NUMBRjest o jeden bajt krótszy niżn R SUM OF n AN 0
Leaky Nun
@LeakyNun Która implementacja ma to? Nie widziałem tego wcześniej.
Alex A.,
2

Podczas drukowania wartości zmiennej na STDOUT, weź pod uwagę następujące kwestie:

VISIBLE variable

jest znacznie krótszy niż

VISIBLE ":{variable}"

Ponadto, ilekroć końcowy znak nowej linii jest dopuszczalny,

VISIBLE variable

który domyślnie zawiera znak nowej linii, jest krótszy niż

VISIBLE variable!

co tłumi nową linię.

Alex A.
źródło