Вы должны сгенерировать текстовую стереограмму в соответствии со строкой ввода, содержащей абзац текста, пустую строку и скрытое сообщение. Результат будет отображаться в виде пары абзацев, один из которых будет иметь разный интервал, вызывая эффект его увеличения при стереографическом просмотре (объяснение можно найти здесь ).
пример
Входные данные:
I invented vegetarianism. It is a diet involving no meat, just vegetables. It is also common in cows - they are awesome.
vegetarianism. is awesome.
Выход:
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.
Бонусы
- Добавить опцию для выбора между параллельным и косоглазым в качестве пользовательского ввода (-20)
- Настраиваемая ширина столбца как пользовательский ввод (-50)
Это код гольфа, поэтому выигрывает самый короткий код после бонусов.
Ответы:
Баш, седь:
228223197(242 - 70) = 172Если сценарий находится в исполняемом файле с именем «стерео», введите
column_width - это число; 25-45 будет работать, по умолчанию 35.
page_width это число, должно быть примерно в два раза больше column_width, по умолчанию 80
Для просмотра с косыми глазами используйте «r l» в качестве 4-го аргумента. По умолчанию установлено значение «l r» для параллельного просмотра.
РЕДАКТИРОВАТЬ: переписать, чтобы разделить файл на одно слово в строке, а затем собрать в конце. Примечание: резервирует знак "=" для собственного использования. Любые знаки «=» во входном файле станут пробелами.
РЕДАКТИРОВАТЬ: Если в вашем сообщении есть знаки «=», вы можете выбрать другой символ для сценария, который будет использоваться, указав его в качестве 5-го параметра.
пример
Входные данные: vegetarianism.txt:
Результат
./stereo vegetarianism.txt 32 72 "l r": | развернуть (используя двоеточие для внутреннего рабочего символа)
./stereo washington.txt 35 75 "l r" | развернуть
«| Раскрыть» не нужно, но при смещении вывода на 4 позиции TAB обрабатываются неправильно. Это может быть вставлено в скрипт стоимостью 7 байт.
Вариация ImageMagick
Замена последней строки командой ImageMagick с преобразованием текста в изображение:
В этом случае «r» и «l» для просмотра в параллельном или параллельном режиме являются отдельными аргументами:
./im_stereo vegetarianism.txt 40 80 лр =
(источник: simplesystems.org )
РЕДАКТИРОВАТЬ 3: Добавлена вариация ImageMagick.
источник
TeX 212
Я использую систему набора текста, а не ASCII. Ширина столбца может быть изменена путем изменения
90pt
в четвертой строке, но я не знаю, достаточно ли этого для получения скидки в 50 байт. Расстояние между двумя копиями текста можно изменить, изменив9pt
также и четвертую строку. Код, вероятно, можно сделать короче. Можно заменить каждую новую строку одним пробелом, но не удалять их полностью.После вызова
tex filename.tex
в терминале пользователю предлагается ввести основной текст, а затем снова запрашивается список слов для смещения. Между ними нет пустой строки. Список слов (разделенный пробелами), приведенный во второй строке, должен отображаться точно так же, как и в основном тексте (пунктуация обрабатывается так же, как и буква, только слова, разделенные пробелами).источник
Javascript 391 (441 - 50)
(Мой первый код гольф)
Результат
Длинный код:
источник
Q='length'
а затем заменить такие вещи , какA.length
сA[Q]
.Javascript 493 (минимальные ожидания)
Этот код устанавливает два массива строк (слева и справа), размещает их в строку и выводит на
f12
консоль.Это всего лишь минимальный ответ, не предназначенный для победы.
источник
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)
Это моя первая большая программа на GolfScript. Я не удивлюсь, если будут оптимизации. Оба бонуса поддерживаются; ожидается, что они будут найдены после ввода сообщений, например:
Если вы сохранили этот файл
input
(и скачали GolfScript ), вы можете запустить скрипт с помощью:Golfed
Ungolfed
источник
JavaScript 391
источник