Воссоздайте «99 бутылок пива на стене».
Желаемый вывод это:
99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.
98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.
97 bottles of beer on the wall, 97 bottles of beer.
Take one down and pass it around, 96 bottles of beer on the wall.
96 bottles of beer on the wall, 96 bottles of beer.
Take one down and pass it around, 95 bottles of beer on the wall.
95 bottles of beer on the wall, 95 bottles of beer.
Take one down and pass it around, 94 bottles of beer on the wall.
....
3 bottles of beer on the wall, 3 bottles of beer.
Take one down and pass it around, 2 bottles of beer on the wall.
2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.
1 bottle of beer on the wall, 1 bottle of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.
Покажите мне, как бы вы решили это с вашим любимым языком программирования. Наиболее творческое использование языка побеждает.
popularity-contest
kolmogorov-complexity
Ник Берарди
источник
источник
Ответы:
Perl (410 символов)
Там это уже сайт , посвященный на этот конкурс:
Одно из решений Perl было бы очень непросто с точки зрения креативности, оно гласит:
[Bottles.pl]
Вот ссылка на оригинальный файл .
источник
\b
для «удаления» нежелательных символов также немного разочаровывает.Brainf *** (1 509)
Я решил, что смогу превзойти этот ответ, сделав не только 9 пивных бутылок вместо 1, но и используя только 7 различных символов в коде.
Я должен признать, что в коде есть ошибка (может быть, вы можете выяснить, как это исправить для меня?), И она не выводит окончательное предложение,
Go to the store and buy some more, 99 bottles of beer on the wall.
но, кроме этого, она работает так же, как и любой из программы, написанные на этих нездоровых языках программирования, которые, похоже, все остальные любят использовать.источник
braindrunk
?Funciton
Я написал это только на днях. :) (Скриншоты: начало и конец )
Так как в StackExchange это выглядит ужасно из-за дополнительного межстрочного интервала, попробуйте запустить следующий код в консоли JavaScript вашего браузера, чтобы это исправить:
$('pre').css('line-height',1)
источник
Консоль jQuery + FireBug
;)
источник
eval($($('code')[8]).text().replace(/print/g,'console.log'))
<del> (он же воровство) </ del>? Он печатает всю лирику песни. : PHQ9 + (1 символ)
По общему признанию это не полный язык Тьюринга, но это все еще имеет значение
источник
Кто сказал, что в C # слишком много церемоний? Кто бы это ни был, они никогда не были такими правыми.
источник
ilivewithian
сказал перед его кодом?С
Эта программа генерирует полный текст песни в виде одной строки, используя препроцессор. Фактический код C просто выводит строку, построенную таким образом. Вызов
strings
сгенерированного исполняемого файла покажет полный текст песни в исполняемом файле.источник
C # (
312310304 символов)источник
C #
Не предназначен быть коротким, но, возможно, это считается творческим?
Обратите внимание, это всего лишь одно утверждение :)
источник
Определенно не считается креативным, но это делается из командной строки с помощью одной команды.
источник
Haskell,
272,250, 243 персонажаисточник
Windows PowerShell (198)
Довольно просто.
Я использую фильтр для бутылок пива, так
function
как он длиннее и вызов требует скобок в любом случае. Обнаружение множественного числа (!!--$_
) сначала уменьшает количество бутылок на одну (так что множественное число является чем-либо, отличным от нуля), приводит его к логическому значению и отрицает его с первым!
и снова отрицает его, так что теперь у нас есть логическое значение, описывающее, нуждается ли число во множественном числе или нет. Затем это неявно приводится к целому числу при умножении строки.Встроенные разрывы строк - это весело.
Нерестит больше строк, чем нужно, и затем сокращает их.
источник
filter b{"$_ bottle$('s'*!!--$_) of beer"}(99..1|%{($_|b)+($w=' on the wall')+", $($_|b).";"Take one down and pass it around, $(--$_|b)$w. "})[0..196];"Go to the store and buy some more, $(99|b) $w."
исправляет это. Всего 199 символов. (Добавьте разрыв строки после$w
ранее"
)Скручиваемость 19 символов
(требуется подключение к интернету)
источник
Почти правильный анти-гольф от нового программиста на С, который изучает Perl?
источник
/usr/bin/env perl
?JavaScript (
216228215)Изменить: В первой версии была одна «1 бутылка пива», 3-я версия полностью переписана, обратите внимание на интересные трюки, такие как
(a||99)
получение 99 в последней строке,(a-1?'s':'')
множественное число для каждого случая, ноa==1
без необходимости расточительства==
, и установка значения изb
внутри инструкции , где она используется.источник
"no more bottles of beer on the wall, no more bottles..."
- См .: 99-bottles-of-beer.net/lyrics.htmlfor(o,e,n=100,t=" on the wall";n-->-1;)o=e+t+", "+e+".<br>"+(n>-1?"Take one down, pass it around, ":"Go to the store and buy some more, ")+(e=(0>n?99:n||"no more")+" bottle"+(1!=n?"s":"")+" of beer")+t+".<p>",99>n&&document.write(o)
С
Должно быть, я пропустил этот вопрос, поэтому вот версия, которую я опубликовал в качестве ответа в другом месте. Это версия на основе C quine. Скомпилируйте и запустите, чтобы получить следующую строку песни. Повторите, пока не надоест. Если в коде написано «Время идти ...», введите количество пива в следующий раз, когда вы запустите в качестве аргумента командной строки.
источник
Javascript (285)
Предполагается, что есть функция print для вывода строки.
источник
b();
. Предположим, есть функция,b()
которая печатает 99 бутылок пива на стене. :)document.writeln
работает.alert
как вывод,prompt
как ввод переменных иconfirm
как логический ввод. Они отстой, насколько пользовательский интерфейс идет, но они являются стандартными функциями блокировки ввода-вывода.alert
иprint
имеют одинаковую длину, поэтому ваш код должен быть примерно одинаковым.Схема (270)
Без пробелов:
С пробелами:
источник
Python - много
Amidoinitrite?
Дополнительная ссылка (мне очень помог с кодом): http://www.youtube.com/watch?v=Y0Z0raWIHXk
источник
Питон (318)
Я нашел этот способ сделать программу Python короче :)
источник
Ребму - 167 персонажей
M N 99 Bdz[cb[n{ bottle}egN 1{s}{}{ of beer}]]loN[cb[b W{ on the wall}C{, }b P{.}lfEZ--n[Nm{Go to the store and buy some more}]{Take one down and pass it around}cBwPlf]]
Может быть, сбрить несколько персонажей, это была только первая попытка. :)
Вот эквивалентный Rebol, у которого кипела стенография. Все еще довольно конкурентоспособен, особенно учитывая ясность:
Прокомментированный исходный код доступен на GitHub
источник
PHP:
285240233231 символовВывод здесь: http://ideone.com/5fQmcd
источник
Питон, 241 символ
источник
Рубин, 274 байта
Все еще довольно новичок в Ruby, просто играю
источник
C # (299 символов)
источник
JavaScript (7 функций)
Не в гольф. Это задумано как (в основном) функциональная реализация песни.
источник
Go (263)
источник
PHP - 252 байта
Я надеюсь, что я сожму еще немного завтра.
источник
Ruby 1.9.2p136: 223
Я не трус, ты можешь читать мой; p
источник
(Oracle) SQL
Никакого количества символов, я не играл в гольф. Просто нашел это интересный способ сделать это.
источник