В этой задаче мы вместе создадим поиск слов, содержащий множество программ на разных языках.
Я начал с сетки с пробелами 60 на 25 ( ·
), некоторые из которых заменены персонажами программы Ruby.
Чтобы ответить, выберите язык, который еще не использовался. Используя выбранный вами язык, напишите программу, которая читает символ, токен, строку или весь ввод с консоли и печатает его . Затем вставьте вашу программу в поиск слов.
Например, предположим, что вы выбрали Python 3 для ответа и написали программу print(input())
. Теперь вам нужно вставить эту программу в сетку.
Если таблица перед вашим ответом выглядит так:
···a·24··········
··z····t·········
Тогда вы можете просто поместить вашу программу во вторую строку, перекрывая существующие t
:
···a·24··········
··zprint(input())
Обратите внимание, что вы можете разместить свою программу в любом направлении: вперед, назад, вверх, вниз или по диагонали, если она находится по прямой линии.
Но что, если существующая сетка выглядит так:
···a·24··········
··z····q·········
Там нет никакого способа, чтобы соответствовать print(input())
здесь без изменения существующих символов, что запрещено. Вместо этого вы можете изменить программу:
print(
input())
Эта двухстрочная программа отлично вписывается:
···a·24·print(···
··z····q input())
Здесь вы заменяете пробел ( ·
) пробелом (
). Однако пробел похож на любой другой символ и не может быть перезаписан в будущих программах.
Как и в случае с одной строкой, многострочная программа может быть размещена в любом направлении. Например, в сетке большего размера вы можете сделать следующее, повернув программу на 135 ° по часовой стрелке.
··········
········ ·
·······i·p
······n·r·
·····p·i··
····u·n···
···t·t····
··(·(·····
·)········
)·········
счет
Ваша оценка за каждый ответ тридцать делится на количество добавленных символов. Не считайте символы, которые уже существовали в сетке, даже если вы используете их самостоятельно.
Ваш общий балл - это сумма баллов за все ваши ответы, умноженная на количество ответов. Самый высокий балл выигрывает.
правила
- Каждый ответ должен быть написан на другом языке. Языки, отличающиеся только номером версии (например, Python 2 и Python 3), считаются одинаковыми.
- Каждый ответ должен основываться на самом последнем действительном ответе. То есть возьмите таблицу с самым последним таким ответом и вставьте в нее свою программу.
- Чтобы вставить вашу программу, замените хотя бы один из пробелов (
·
) выбранными вами символами. Вы можете использовать существующие символы из сетки в своем ответе, но вы не можете изменять или перемещать любого из них.
- Вы не можете вставить не более 500 символов для всех своих ответов.
- Все символы, которые вы вставляете, должны быть частью вашей программы.
- Ваша программа может состоять только из печатных ASCII и новых строк, но не может быть двух или более последовательных новых строк подряд.
- Новые строки не засчитываются в ваш счет.
- Требуется полная программа, а не просто функция или фрагмент.
- Один и тот же пользователь не может писать два последовательных ответа.
- Если чей-то ответ нарушает правило, оставьте комментарий. Если ошибка не устранена в течение 30 минут, ее следует удалить.
Используемый фрагмент языка
Это фрагмент стека, созданный ETHproductions, FryAmTheEggman и Mauris, который отслеживает оценки пользователей и используемые языки. Первоначально он был скопирован с удивительного шаблона Мартина Бюттнера .
Оригинальная таблица лидеров:
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,r){return"http://api.stackexchange.com/2.2/answers/"+r.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var r=+e.share_link.match(/\d+/);answer_ids.push(r),answers_hash[r]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[],r={},x={};answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var n=a.match(SCORE_REG);if(n){var t=getAuthorName(s);e.push({user:getAuthorName(s),size:+n[2],language:n[1],link:s.share_link}),r[t]=r[t]||0,r[t]+=30/+n[2],x[t]=x[t]||0,x[t]++}});Object.keys(r).forEach(function(e){r[e]*=x[e]});var s=Object.keys(r).sort(function(e,s){return r[s]-r[e]});e.sort(function(e,r){var s=e.size,a=r.size;return s-a});var a={},t=null;e.forEach(function(e){t=e.size;var r=e.language;/<a/.test(r)&&(r=jQuery(r).text()),a[r]=a[r]||{lang:e.language,user:e.user,size:e.size,link:e.link}});for(var c=0,o=1;c<s.length;c++){var i=jQuery("#author-template").html();r[s[c]]!==r[s[c-1]]&&(o=c+1);i=i.replace("{{PLACE}}",o+'.').replace("{{NAME}}",s[c]).replace("{{SCORE}}",r[s[c]].toFixed(2)),jQuery("#authors").append(jQuery(i))}var u=[];for(var m in a)a.hasOwnProperty(m)&&u.push(a[m]);u.sort(function(e,r){var s=e.lang.replace(/<.*?>/g,"").toLowerCase(),a=r.lang.replace(/<.*?>/g,"").toLowerCase();return s>a?1:a>s?-1:0});for(var l=0;l<u.length;++l){var h=jQuery("#language-template").html(),m=u[l];h=h.replace("{{LANGUAGE}}",m.lang).replace("{{NAME}}",m.user).replace("{{SIZE}}",m.size).replace("{{LINK}}",m.link),h=jQuery(h),jQuery("#languages").append(h)}}var QUESTION_ID=57327,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=16294,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#author-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="author-list"> <h2>Leaderboard</h2> <table class="author-list"> <thead> <tr><td></td><td>Author</td><td>Score</td></tr></thead> <tbody id="authors"> </tbody> </table> </div><div id="language-list"> <h2>Languages</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="author-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{SCORE}}</td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Новая (экспериментальная) версия, с использованием модифицированной формулы:
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,r){return"http://api.stackexchange.com/2.2/answers/"+r.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var r=+e.share_link.match(/\d+/);answer_ids.push(r),answers_hash[r]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[],r={},x={};answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var n=a.match(SCORE_REG);if(n){var t=getAuthorName(s);e.push({user:getAuthorName(s),size:+n[2],language:n[1],link:s.share_link}),r[t]=r[t]||0,r[t]+=30/+n[2]+20,x[t]=x[t]||0,x[t]++}});var s=Object.keys(r).sort(function(e,s){return r[s]-r[e]});e.sort(function(e,r){var s=e.size,a=r.size;return s-a});var a={},t=null;e.forEach(function(e){t=e.size;var r=e.language;/<a/.test(r)&&(r=jQuery(r).text()),a[r]=a[r]||{lang:e.language,user:e.user,size:e.size,link:e.link}});for(var c=0,o=1;c<s.length;c++){var i=jQuery("#author-template").html();r[s[c]]!==r[s[c-1]]&&(o=c+1);i=i.replace("{{PLACE}}",o+'.').replace("{{NAME}}",s[c]).replace("{{SCORE}}",r[s[c]].toFixed(2)),jQuery("#authors").append(jQuery(i))}var u=[];for(var m in a)a.hasOwnProperty(m)&&u.push(a[m]);u.sort(function(e,r){var s=e.lang.replace(/<.*?>/g,"").toLowerCase(),a=r.lang.replace(/<.*?>/g,"").toLowerCase();return s>a?1:a>s?-1:0});for(var l=0;l<u.length;++l){var h=jQuery("#language-template").html(),m=u[l];h=h.replace("{{LANGUAGE}}",m.lang).replace("{{NAME}}",m.user).replace("{{SIZE}}",m.size).replace("{{LINK}}",m.link),h=jQuery(h),jQuery("#languages").append(h)}}var QUESTION_ID=57327,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=16294,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#author-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="author-list"> <h2>Leaderboard</h2> <table class="author-list"> <thead> <tr><td></td><td>Author</td><td>Score</td></tr></thead> <tbody id="authors"> </tbody> </table> </div><div id="language-list"> <h2>Languages</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="author-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{SCORE}}</td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Чтобы убедиться, что ваша заявка распознается фрагментом, используйте следующий шаблон заголовка:
# Language, X characters added
Ответы:
Java, добавлено 124 символа
Пока еще есть место!
Сетка сейчас
Сделал редактирование ниндзя и перевернул код в сетке, так как OP утверждает, что код может быть задом наперед. Затем переоборудовал его в следующий ответ
источник
Свинка, добавлено 23 персонажа
Извините еще раз за то, что пропустили одно требование в вопросе.
вот мое новое представление:
Это устанавливает переменную t в пробел, затем читает не более 50 символов из стандартного ввода с 20-секундным таймаутом, записывает новую строку, переменную, затем еще одну новую строку. (Многие терминалы эпидемического паротита становятся немного грязными, если вы этого не сделаете ...)
Сетка теперь:
что черт побери R представление сделало это немного сложнее, чтобы написать ... :-)
источник
Битник , добавлено 29 символов
Объяснение грядет :)
Новая сетка
источник
C, добавлено 27 символов
Кто-то упомянул C, и я увидел, что это все еще возможно.
Новая сетка:
источник
??? , 1 символ добавлен
Сетка теперь:
источник
Урна , добавлено 3 символа
Новая сетка:
источник
Ruby, добавлено 9 символов
Сетка теперь:
источник
LISP, добавлено 3 символа
Новая сетка:
источник
Perl, добавлено 6 символов
Сетка теперь:
источник
Quipu , добавлено 3 персонажа
Программа для кошек в Quipu состоит из четырех символов:
Я повернул это на 90 ° и снова использовал один из слешей из Rail .
Новая сетка:
источник
Marbelous , 7 добавленных персонажей
(Если я правильно понял, как работает Marbelous ...)
источник
00\n]]
бы тоже это сделал.Pyth, добавлен 1 символ
Сетка теперь:
источник
w__t_
Я вижу, что вы сделали тамPowerShell, добавлено 14 символов
Я буду милым и дам людям больше места для дыхания. :)
Сетка сейчас
источник
Алгол 68, добавлено 7 символов
Новая сетка:
источник
LOLCODE , 31 символов добавлено
Справа от середины повернут на 90 o . Бодался красиво против
-
,и
d
там. Между тем, пакетные файлы и PowerShell, я уверен, что я не собираюсь выигрывать, основываясь на баллах. :-)Сетка теперь:
(Я также исправил четвертый снизу ряд)
источник
Пролог (SWI), добавлено 14 символов
Читает один символ и выводит его. На Ideone это работает, но с выводом в stderr. С
swipl
Ubuntu он делает следующее:где
X
вводимый символ и?-
подсказка. Вы можете выйти из приглашения с помощью Ctrl-D.Новая сетка (код читается сверху вниз, справа налево в правом верхнем углу):
источник
oOo CODE , добавлен 1 символ
Новая сетка:
источник
Лабиринт , добавлен 1 персонаж
Читает и пишет персонаж.
Сетка сейчас
источник
Луч, добавлено 11 символов
Добавлен дополнительный H, чтобы он не вел себя как программа cat.
q
Иi
игнорируются. Я, вероятно, мог бы стать больше с этим, но это походило на обман.Сетка сейчас
источник
ferNANDo , добавлено 31 символа
Новая сетка:
источник
Схема, добавлено 8 символов
Новая сетка:
источник
Баш, добавлено 6 символов
Сетка теперь:
источник
itflabtijtslwi , добавлено 5 символов
Это язык ///, но с пользовательским вводом в окружении
GG
. Это "названо", что бы ни произошло между ними. Поэтому это просто повторяет первый символ STDIN. (Поскольку это читает только 1 символ, имя из 2 символов означает, что оно всегда будет останавливаться после замены Oa тем, что вы вводите)Добавлен вверху слева вертикально от (поперек, вниз) = (0,1) до (0,9)
Новая сетка:
источник
GOa
! +1PHP, добавлено 24 символа
Сетка теперь:
источник
var_dump($argv);
. Вы можете использоватьprint_r($args)
вместо этого и сохранить 1 байт.Retina , добавлен 1 персонаж
Это по сути
cat
.G
активирует режим grep, т.е. программа печатает каждую строку программы, которая соответствует заданному регулярному выражению. Но регулярное выражение пустое, поэтому каждая строка совпадает, и весь ввод печатается обратно в STDOUT.источник
RunR , добавлено 8 символов
Последний на данный момент
Добавлен близко к середине, внизу и осталось немного. Новая сетка
источник
Mathematica, добавлено 19 символов
Новая сетка:
источник
Хаскель, 16 символов добавлено
Копирует стандартный ввод в стандартный вывод. Код начинается со строки 15, символ 39.
источник
Ук! Добавлено 19 символов
Размещены на 24-й линии.
источник
Октава / Матлаб, добавлено 23 символа
Можем ли мы получить C? : D
Сетка теперь:
источник