Musisz wygenerować stereogram tekstowy na podstawie ciągu wejściowego zawierającego akapit tekstu, pustą linię, a następnie ukrytą wiadomość. Wynik zostanie wyświetlony jako para akapitów, jeden o różnych odstępach, powodujący podniesienie efektu podczas oglądania stereograficznego (wyjaśnienie znajduje się tutaj ).
Przykład
Wkład:
I invented vegetarianism. It is a diet involving no meat, just vegetables. It is also common in cows - they are awesome.
vegetarianism. is awesome.
Wydajność:
I invented I invented
vegetarianism. vegetarianism.
It is a diet It is a diet
involving no involving no
meat, just meat, just
vegetables. It vegetables. It
is also common is also common
in cows - they in cows - they
are awesome. are awesome.
Bonusy
- Dodaj opcję do wyboru między wejściem równoległym i zezemoczonym podczas wprowadzania danych przez użytkownika (-20)
- Regulowana szerokość kolumny jako dane wejściowe użytkownika (-50)
To jest kod golfowy, więc wygrywa najkrótszy kod po bonusach.
Odpowiedzi:
Bash, sed:
228223197(242–70) = 172Jeśli skrypt znajduje się w pliku wykonywalnym o nazwie „stereo”, wpisz
column_width to liczba; 25-45 będzie działać, domyślnie 35.
page_width to liczba, powinna być około dwa razy większa niż szerokość kolumny, domyślnie 80
Do oglądania ze skrzyżowanymi oczami użyj „r l” jako czwartego argumentu. Domyślnie jest to „l r”, które ustawia się do oglądania równoległego.
EDYCJA: Przepisać, aby podzielić plik na jedno słowo w wierszu, a następnie ponownie złożyć na końcu. Uwaga: zastrzega znak „=” do własnego użytku. Wszelkie znaki „=” w pliku wejściowym będą puste.
EDYCJA: Jeśli twoja wiadomość zawiera znaki „=”, możesz wybrać inny symbol do użycia przez skrypt, podając go jako piąty parametr.
Przykład
Dane wejściowe: wegetarianizm.txt:
Wynik
./stereo wegetarianizm.txt 32 72 "l r": | rozwinąć (używając dwukropka jako wewnętrznego symbolu pracy)
./stereo washington.txt 35 75 "l r" | rozwiń
„| Rozwinąć” nie jest konieczne, ale przy przesunięciu wyjścia o 4 miejsca tabele są obsługiwane nieprawidłowo. Można go umieścić w skrypcie kosztem 7 bajtów.
Odmiana ImageMagick
Zastępowanie ostatniego wiersza poleceniem ImageMagick typu tekst na obraz:
W tym przypadku „r” i „l” dla oglądania ze skrzyżowanymi oczami w porównaniu do oglądania równoległego są osobnymi argumentami:
./im_stereo wegetarianizm. txt 40 80 lr =
(źródło: simplesystems.org )
EDYCJA 3: Dodano odmianę ImageMagick.
źródło
TeX 212
Używam systemu składu, a nie ASCII. Szerokość kolumny można zmienić, zmieniając
90pt
w czwartym wierszu, ale nie wiem, czy to wystarczy, aby zakwalifikować się do 50 bajtów zniżki. Odległość między dwiema kopiami tekstu można zmienić, zmieniając9pt
także w czwartym wierszu. Kod można prawdopodobnie skrócić. Można zastąpić każdą nową linię pojedynczą spacją, ale nie można jej całkowicie usunąć.Po wywołaniu
tex filename.tex
w terminalu użytkownik jest proszony o podanie głównego tekstu, a następnie ponownie o listę słów do przesunięcia. Pomiędzy nie ma pustej linii. Lista słów (oddzielona spacjami) podana w drugim wierszu powinna wyglądać dokładnie tak, jak w tekście głównym (interpunkcja jest traktowana tak jak litera, tylko słowa oddzielają spacje).źródło
JavaScript 391 (441-50)
(Mój pierwszy kod golfowy)
Wynik
Długi kod:
źródło
Q='length'
, a następnie wymienić rzeczy, jakA.length
zA[Q]
.JavaScript 493 (minimalne oczekiwania)
Ten kod ustawia dwie tablice wierszy (lewy i prawy), układa je w ciąg i drukuje na
f12
konsoli.To tylko minimalna odpowiedź, nie przeznaczona do wygrania.
źródło
L=b=>b.length;c=console.log;p=prompt;r=(l=p().split(g=" ")).slice(),m=p().split(g),s=(f=[]).slice(),n=w=a="";for(i=0;i<L(l);i++)l[i]==m[0]&&(m.shift(),l[i]=g+r[i],r[i]+=g),L(l[i])+1>w&&(w=L(l[i])+1);for(;L(l);){f[L(f)]="";for(s[L(s)]="";L(l)&&L(f[L(f)-1])+L(l[0])<w;)f[L(f)-1]+=l[0]+g,s[L(s)-1]+=r[0]+g,l.shift(),r.shift();f[L(f)-1]+=g.repeat(w-L(f[L(f)-1]))}for(c(f,s);L(f);)a+=f[0]+s[0]+"\n",f.shift(),s.shift();c(a)
GolfScript 209 (279-50-20)
To mój pierwszy duży program GolfScript. Nie zdziwiłbym się, gdyby były jakieś optymalizacje. Oba bonusy są obsługiwane; należy je znaleźć po danych wejściowych komunikatu, takich jak:
Jeśli zapisałeś ten plik w
input
(i pobrałeś GolfScript ), możesz wywołać skrypt za pomocą:Grał w golfa
Nie golfił
źródło
JavaScript 391
źródło