Вот простая задача для вас: вы должны создать это ASCII представление шахматной доски. Белый цвет представлен заглавными буквами, а черный - строчными. Пустые плитки представлены как .
. Вот полный пансион:
rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR
Поскольку это вопрос сложности по Колмогорову , вы не можете принимать какие-либо входные данные, и вы должны выводить эту плату любым методом по умолчанию, например, сохранением файла, печатью в STDOUT или возвратом из функции. При желании вы можете создать один завершающий перевод строки. Применяются стандартные лазейки и самая короткая программа в байтах!
Тем не менее, помните, что это в равной степени конкуренция между представлениями на одном языке. Хотя маловероятно, что такие языки, как Java, могут превзойти язык, подобный perl, или язык игры в гольф, такой как pyth или cjam, кратчайший ответ на Java по-прежнему впечатляет! Чтобы помочь вам найти самый короткий ответ на каждом языке, вы можете использовать этот список лидеров, который покажет самое короткое представление по языку и в целом.
Leaderboards
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в заголовок несколько чисел (например, потому что ваш результат равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
# Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать название языка ссылкой, которая затем будет отображаться во фрагменте списка лидеров:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
источник
ASCII art
шахматной доски была бы полная остановка каждый второй квадрат?Ответы:
Желе ,
2524 байтаПопробуйте онлайн!
Спасибо @Lynn за вывод 1 байта!
Как это работает
источник
Vim, 26 байт
irnbqkbnr<Esc>Y6p5Vr.VrpYGPgUj
Полагается на свежий Vim, иначе
5V
может выбрать не ту область.irnbqkbnr<Esc>
: Напишите верхний ряд. Достаточно просто.Y6p
: Сделать остальные строки, кроме одного . Конечно, все строки, кроме верхней и нижней, содержат неправильные символы.5Vr.
: Когда вы еще не использовали визуальный режим в сеансе, вы можете сделать что-то вроде этого, чтобы выбрать 5 строк. Если вы сразу же наберете ту же самую вещь, она попытается выбрать 25 строк. Vim такой странный.Vrp
: Мы уже на второй линии, поэтому давайте сделаем пешку.YGP
Скопируйте эту пешечную линию на место внизу. Вот почему я использовал6p
вместо того, чтобы7p
раньше.gUj
: Заглавные буквы.источник
Brainfuck , 224 байта
Потребовался почти час, чтобы получить это.
источник
Python 2, 63 байта
К сожалению, довольно простой подход был намного короче, чем "умные" вещи, которые я попробовал сначала ...
Бонусный ответ, также 63 байта:
источник
05AB1E , 24 байта
Использует кодировку CP-1252 .
Попробуйте онлайн!
объяснение
источник
На самом деле , 26 байтов
Попробуйте онлайн!
Объяснение:
источник
Чеддер, 56 байт
Использует новую
=>
функцию.объяснение
источник
Пайк,
282726 байтПопробуй это здесь!
Сегодня я узнал что-то новое о своем языке:
1c
его можно использовать как способ разбиения строки на список символов, состоящий из двух символов.источник
MATL , 26 байт
Попробуйте онлайн!
объяснение
источник
Руби,
45441 байт сохранен благодаря tuxcrafting.
Это 45
Попытка сделать что-нибудь более умное, кажется, делает это дольше.
источник
puts
JavaScript (ES6),
6965 байтСохранено 4 байта благодаря edc65
источник
'rnbqkbnrnp....PRNBQKBNR'.replace(/p|\./ig,c=>c.repeat(8)+'\n')
(изменить\n
на буквальныйC #,
9492 байтаИзменить: Спасибо молоко за сохранение 1 байта путем изменения порядка строк, чтобы удалить возвращаемые пробелы.
Редактирование: сохранил еще 1 байт, добавив фиктивный параметр ( x вместо () ) для анонимной функции и вызвав его с любым объектом.
Полная программа с использованием вышеуказанной функции:
C # очень многословный язык ...
C # полная программа, 131 байт
Ungolfed:
источник
a
иb
в верхнем регистре, после чего вы можете избавиться от пробела послеreturn
:return(a+b).ToLower()+...
var
вместоstring
?var
несколько объявлений в одной строке. Такstring a="rnbqkbnr\n",b="pppppppp\n",c="........\n";
стало быvar a="rnbqkbnr\n";var b="pppppppp\n";var c="........\n";
, что увеличивает количество байтов. РЕДАКТИРОВАТЬ: Это приведет к ошибке « Неявно типизированное объявление локальной переменной не может включать несколько деклараторов » .Python 2, 68 байт
Публикация в любом случае, хотя вышеприведенная версия Python 2 короче. Это не должно быть одним вкладышем для количества байтов, просто играл с ним.
источник
z
как используется только один раз, вы можете избавиться от него и получить точки в операторе печати.Haskell, 53 байта
a
используется в качестве первой строки и для определения длины строк, из которыхp
,.
иP
(-><$a
). ,источник
JavaScript (ES6), 73
.toUpperCase
просто слишком долгоисточник
(r=c=>c[0].repeat(8)+
\ n,b=r
.)=>
экономит вам байт.PowerShell v2 +, 44 байта
Строки, оставленные на конвейере, неявно печатаются
Write-Output
при выполнении программы. Мы соединяем это с поведением новой строки по умолчанию для массива, чтобы получить четыре строки точек с помощью оператора запятой.источник
,
создает массив (в данном случае массив строк). По умолчаниюWrite-Output
при завершении программы вставляется новая строка между элементами, оставленными в конвейере, включая отдельные элементы массива. Итак, мы злоупотребляем выходным поведением по умолчанию, чтобы не нужно было писать явные символы новой строки в коде.V ,
27, 26 байтовПопробуйте онлайн!
Это содержит некоторые непечатаемые символы, поэтому вот читаемая версия:
где
<esc>
представляет0x1B
. Объяснение:источник
Emotinomicon, 89 байт
К сожалению, Emotinomicon не имеет ничего общего с функцией дублирования стека. Было бы полезно. Но, по крайней мере, короче, чем Java. :)
Объяснение:
источник
Brain-Flak ,
366350 + 3 = 353 байтаПопробуйте онлайн!
Это получает плюс 3, потому что это требует, чтобы
-A
флаг работал правильно.объяснение
источник
((((((((((((((((((((()()()()()){}){}){}()){})[()()()()])[([][][]){}])[][][])[]()())[[][][]])[][])()()()())<([]()())>[()()]))))))))
которые, я думаю, сэкономят вам 16 байтов. Здесь вообще не используется альтернативный стек, поэтому он может быть еще короче.Python 3.5, 56 байт
Это использует идею zawata для кодирования каждой строки как
(r*8)[:8]
, когда строка повторяется 8 раз и обрезается до длины8
. Пешки и пустые строки являются просто'p'*8
,'.'*8
и'P'*8
, без обрезки. Первый ряд использует'rnbqkbn'
, с('rnbqkbn'*8)[:8]
включая другую ладью на правом при умножении и обрезается. Последний ряд такой же, но с заглавной буквы.Мы выражаем список частей строки компактно,
['rnbqkbn','p','.','.','.','.','P','RNBQKBN']
используя обобщенную распаковку Python 3.5 . Мы записываем первые и последние записи, а оставшиеся односимвольные записи распаковываются из строки.В Python 2 мы могли бы согласиться
split
на 60 байтов:источник
Python 3,
828075 байтНе самый короткий ответ в Python, но это мой первый, и я думаю, что это довольно хорошо в первый раз
источник
[:8]for i in['rnbqkbn'....
'rnbqkbn p . . . . P RNBQKBN'.split()
.Пакетная, 105 байт
Партия серьезно многословна ...
источник
R 75 байт
Изменить: Исправлена глупая ошибка и просто выписать заглавную часть доски сейчас.
источник
\n
Powershell,
8273 байтаисточник
*per
ничего раньше, и Google не дает мне никаких указателей. Есть объяснение?J,
5552 байтаТест и промежуточные этапы
источник
Python 3, 64 байта
Исходя из ответа DLosc на Python 2, так как по моему я не смог улучшить.
На 1 байт меньше по сравнению с использованием "\ n" .join
источник
q, 51 байт
источник
-1 flip"p...P"{y,x,upper y}/:"rnbqkbnr";
. 40 байтов. Хорошее решение, хотя!GNU sed, 54 байта
Попробуйте онлайн!
Объяснение:
Черные фигуры печатаются первыми, сохраняя два связанных ряда досок в обратном порядке в области удержания. Белые кусочки печатаются путем преобразования пространства для хранения в заглавные буквы.
источник
Java 7,
1039989 байт10 байт сэкономлено по сравнению с жестко закодированным выводом благодаря подходу @SLC в его ответе на C # .
Попробуй это здесь.
Выход:
источник
String f(){return"rnbqkbnr\npppppppp\n........\n........\n........\n........\nPPPPPPPP\nRNBQKBNR";}
Это 100 байтов .C #,
85848374 байтаИзменить: Случайно было слишком много строк пустых пространств!
Редактировать: освободил лишнего персонажа и исправил порядок (случайно все изменилось) большое спасибо @KevinCruijssen
Изменить: вернуться к 83, потому что у меня были креветки на неправильной линии
Редактировать: Спасибо @adrianmp, который помог мне уменьшить его, опустив return
Используя тот же формат, что и ответ @adrianmp выше:
Полная программа с использованием вышеуказанной функции:
источник
return "
, поэтому она становится:x=>{return"rnbqkbnr\npppppppp\nxxxxPPPPPPPP\nRNBQKBNR".Replace("x","........\n");};
. Хороший ответ, так что +1 от меня. И приятного пребывания здесь. :)x=>"rnbqkbnr\npppppppp\nxxxxRNBQKBNR\nPPPPPPPP".Replace("x","........\n");